System and method for a multi-primary wide gamut color system

ABSTRACT

The present invention includes systems and methods for a multi-primary color system for display. A multi-primary color system increases the number of primary colors available in a color system and color system equipment. Increasing the number of primary colors reduces metameric errors from viewer to viewer. One embodiment of the multi-primary color system includes Red, Green, Blue, Cyan, Yellow, and Magenta primaries. The systems of the present invention maintain compatibility with existing color systems and equipment and provide systems for backwards compatibility with older color systems.

CROSS REFERENCES TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. application Ser. No. 17/516,143, filed Nov. 1, 2021, which is a continuation-in-part of U.S. application Ser. No. 17/338,357, filed Jun. 3, 2021, which is a continuation-in-part of U.S. application Ser. No. 17/225,734, filed Apr. 8, 2021, which is a continuation-in-part of U.S. application Ser. No. 17/076,383, filed Oct. 21, 2020, which is a continuation-in-part of U.S. application Ser. No. 17/009,408, filed Sep. 1, 2020, which is a continuation-in-part of U.S. application Ser. No. 16/887,807, filed May 29, 2020, which is a continuation-in-part of U.S. application Ser. No. 16/860,769, filed Apr. 28, 2020, which is a continuation-in-part of U.S. application Ser. No. 16/853,203, filed Apr. 20, 2020, which is a continuation-in-part of U.S. patent application Ser. No. 16/831,157, filed Mar. 26, 2020, which is a continuation of U.S. patent application Ser. No. 16/659,307, filed Oct. 21, 2019, now U.S. Pat. No. 10,607,527, which is related to and claims priority from U.S. Provisional Patent Application No. 62/876,878, filed Jul. 22, 2019, U.S. Provisional Patent Application No. 62/847,630, filed May 14, 2019, U.S. Provisional Patent Application No. 62/805,705, filed Feb. 14, 2019, and U.S. Provisional Patent Application No. 62/750,673, filed Oct. 25, 2018, each of which is incorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION 1. Field of the Invention

The present invention relates to color systems, and more specifically to a wide gamut color system with an increased number of primary colors.

2. Description of the Prior Art

It is generally known in the prior art to provide for an increased color gamut system within a display.

Prior art patent documents include the following:

U.S. Pat. No. 10,222,263 for RGB value calculation device by inventor Yasuyuki Shigezane, filed Feb. 6, 2017 and issued Mar. 5, 2019, is directed to a microcomputer that equally divides the circumference of an RGB circle into 6xn (n is an integer of 1 or more) parts, and calculates an RGB value of each divided color. (255, 0, 0) is stored as a reference RGB value of a reference color in a ROM in the microcomputer. The microcomputer converts the reference RGB value depending on an angular difference of the RGB circle between a designated color whose RGB value is to be found and the reference color, and assumes the converted RGB value as an RGB value of the designated color.

U.S. Pat. No. 9,373,305 for Semiconductor device, image processing system and program by inventor Hiorfumi Kawaguchi, filed May 29, 2015 and issued Jun. 21, 2016, is directed to an image process device including a display panel operable to provide an input interface for receiving an input of an adjustment value of at least a part of color attributes of each vertex of n axes (n is an integer equal to or greater than 3) serving as adjustment axes in an RGB color space, and an adjustment data generation unit operable to calculate the degree of influence indicative of a following index of each of the n-axis vertices, for each of the n axes, on a basis of distance between each of the n-axis vertices and a target point which is an arbitrary lattice point in the RGB color space, and operable to calculate adjusted coordinates of the target point in the RGB color space.

U.S. Publication No. 20130278993 for Color-mixing bi-primary color systems for displays by inventors Heikenfeld, et al., filed Sep. 1, 2011 and published Oct. 24, 2013, is directed to a display pixel. The pixel includes first and second substrates arranged to define a channel. A fluid is located within the channel and includes a first colorant and a second colorant. The first colorant has a first charge and a color. The second colorant has a second charge that is opposite in polarity to the first charge and a color that is complimentary to the color of the first colorant. A first electrode, with a voltage source, is operably coupled to the fluid and configured to moving one or both of the first and second colorants within the fluid and alter at least one spectral property of the pixel.

U.S. Pat. No. 8,599,226 for Device and method of data conversion for wide gamut displays by inventors Ben-Chorin, et al., filed Feb. 13, 2012 and issued Dec. 3, 2013, is directed to a method and system for converting color image data from a, for example, three-dimensional color space format to a format usable by an n-primary display, wherein n is greater than or equal to 3. The system may define a two-dimensional sub-space having a plurality of two-dimensional positions, each position representing a set of n primary color values and a third, scaleable coordinate value for generating an n-primary display input signal. Furthermore, the system may receive a three-dimensional color space input signal including out-of range pixel data not reproducible by a three-primary additive display, and may convert the data to side gamut color image pixel data suitable for driving the wide gamut color display.

U.S. Pat. No. 8,081,835 for Multiprimary color sub-pixel rendering with metameric filtering by inventors Elliott, et al., filed Jul. 13, 2010 and issued Dec. 20, 2011, is directed to systems and methods of rendering image data to multiprimary displays that adjusts image data across metamers as herein disclosed. The metamer filtering may be based upon input image content and may optimize sub-pixel values to improve image rendering accuracy or perception. The optimizations may be made according to many possible desired effects. One embodiment comprises a display system comprising: a display, said display capable of selecting from a set of image data values, said set comprising at least one metamer; an input image data unit; a spatial frequency detection unit, said spatial frequency detection unit extracting a spatial frequency characteristic from said input image data; and a selection unit, said unit selecting image data from said metamer according to said spatial frequency characteristic.

U.S. Pat. No. 7,916,939 for High brightness wide gamut display by inventors Roth, et al., filed Nov. 30, 2009 and issued Mar. 29, 2011, is directed to a device to produce a color image, the device including a color filtering arrangement to produce at least four colors, each color produced by a filter on a color filtering mechanism having a relative segment size, wherein the relative segment sizes of at least two of the primary colors differ.

U.S. Pat. No. 6,769,772 for Six color display apparatus having increased color gamut by inventors Roddy, et al., filed Oct. 11, 2002 and issued Aug. 3, 2004, is directed to a display system for digital color images using six color light sources or two or more multicolor LED arrays or OLEDs to provide an expanded color gamut. Apparatus uses two or more spatial light modulators, which may be cycled between two or more color light sources or LED arrays to provide a six-color display output. Pairing of modulated colors using relative luminance helps to minimize flicker effects.

U.S. Pat. No. 9,035,969 for Method for multiple projector display using a GPU frame buffer by inventors Ivashin, et al., filed Nov. 29, 2012 and issued May 19, 2015, is directed to a primary image transformed into secondary images for projection, via first and second frame buffers and view projection matrixes. To do so, a first image is loaded into the first frame buffer. A calibration data set, including the view projection matrixes, is loaded into an application. The matrixes are operable to divide and transform a primary image into secondary images that can be projected in an overlapping manner onto a projection screen, providing a corrected reconstruction of the primary image. The first image is rendered from the first frame buffer into the second images, by using the application to apply the calibration data set. The second images are loaded into a second frame buffer, which can be coupled to the video projectors.

U.S. Pat. No. 9,307,616 for Method, system and apparatus for dynamically monitoring and calibrating display tiles by inventors Robinson, et al., filed May 15, 2015 and issued Apr. 5, 2016, is directed to a method, system and apparatus for dynamically monitoring and calibrating display tiles. The apparatus comprises: an array of light emitting devices; one or more light emitting devices paired with light emitting devices of the array; one or more sensors configured to detect an optical characteristic and/or an electrical characteristic of the one or more paired light emitting devices; and, circuitry configured to: drive the array; drive each of the one or more further light emitting devices under same conditions as light emitting devices of the array; temporarily drive each of the one or more paired light emitting devices under different conditions from the array; and, adjust driving of the array based on the optical characteristic and/or electrical characteristic of the one or more paired light emitting devices detected at sensor(s) when the one or more paired light emitting devices are driven under the different conditions.

U.S. Pat. No. 8,911,291 for Display system and display method for video wall by inventor Liu, filed Nov. 26, 2012 and issued Dec. 16, 2014, is directed to a display system and a display method for video walls. The display system includes at least one server and a plurality of player devices. Each server renders an image and transmits the image to a network. The player devices are coupled to the at least one server through the network. Each player device receives the image or a part of the image rendered by one of the at least one server, and determines a synchronization time together with at least one of the other player devices. Each player device uses a display of a video wall to simultaneously display the image or the part of the image at the synchronization time.

U.S. Pat. No. 10,079,963 for Display method and display system for video wall by inventors Liu, et al., filed May 12, 2017 and issued Sep. 19, 2018, is directed to a display method and a display system for a video wall. The method is applicable to a display system having a server and multiple player devices. Each of the player devices is connected to the server and a video wall having multiple displays, and each of the player devices corresponds to a different one of the displays and a different one of regions in a video stream. The method includes to receive the video stream from the server by each of the player devices, to send a broadcast command by a master player device among the player devices to other player devices, and to start displaying the corresponding region in a first frame of the video stream on the corresponding display of the video wall by each of the player devices after a preset delay time interval according to the broadcast command.

U.S. Pat. No. 7,535,433 for Dynamic multiple display configuration by inventors Ledebohm, et al., filed May 18, 2006 and issued May 19, 2009, is directed to a system and method for modifying the configuration of one or more graphics adapters and one or more displays without rebooting the system allows a user to quickly transition between different graphics adapter/display configurations. A single display driver interfaces between the operating system and the one or more graphics devices. The display driver reconfigures the one or more graphics devices to change the adapter/display configuration without shutting down or rebooting the system. Unlike a conventional system reboot performed by the operating system, the display driver checks that there are no memory leaks or error conditions during the reconfiguration.

U.S. Pat. No. 10,162,590 for Video wall system and method of making and using same, by inventor Ritter, filed May 4, 2015 and issued Dec. 25, 2018, is directed to a hub which in turn is made of a housing, at least one video input port, at least two video output ports, a digital card enabling communication between a computer and at least one display without a direct physical connection and a processor. The hub is used to make a video wall.

U.S. Pat. No. 9,911,176 for System and method of processing images into sub-image portions for output to a plurality of displays such as a network video wall by inventors Griffin, et al., filed Jan. 12, 2015 and issued Mar. 6, 2018, is directed to a system for improving the flexibility and performance of video walls including a method for using a primary GPU for initial rendering to a GPU frame buffer, copying of this frame buffer to system memory for processing into multiple sub-frames then outputting the sub-frames via multiple secondary graphics controllers. This system enables the video wall server to leverage performance advantages afforded by GPU acceleration and maintaining performance while providing full flexibility of the CPU and system memory to apply the required transformations to the sub-images as well as flexibility in the selection of secondary graphics controllers (including network graphics approaches where the graphics controller is connected over a network) for outputting the multiple sub-images to a plurality of displays. This has applications generally in the field of real-time multiple display graphics processing as well as specific applications in the field of video walls and network video walls. A method and computer readable medium also operate in accordance with the system.

U.S. Pat. No. 10,185,533 for Video wall control system and method by inventors Kim, et al., filed Sep. 24, 2014 and issued Jan. 22, 2019, is directed to a video wall control system for controlling a video wall including a plurality of screens, the video wall control system including: at least one client module controlling the layout of the video wall; a central control module acquiring camera unique identification (UID) and a video stream from a monitoring system, storing the camera UID and the video stream, and controlling the layout of the video wall; a storage module storing the modified video wall layout; a gateway module receiving a layout modification event from the client module or the central control module and load the modified video wall layout from the storage module; and a decoding module loading the camera UID and the video stream from the central control module, receiving the modified video wall layout from the gateway module, and modifying the layout of the video wall based on the received modified video wall layout.

SUMMARY OF THE INVENTION

It is an object of this invention to provide an enhancement to the current RGB systems or a replacement for them.

In one embodiment, the present invention includes a system for displaying image data including at least one graphics processing unit (GPU), a display engine, at least one display controller, and a plurality of display devices, wherein the image data includes a luminance and two colorimetric coordinates, and wherein the two colorimetric coordinates are independent from the luminance, wherein the at least one GPU is operable to render the image data for display on the plurality of display devices, thereby creating rendered image data, wherein the rendered image data is transmitted to the display engine, wherein the display engine is operable to apply at least one non-linear transfer function to the luminance, thereby creating a luma, wherein the rendered image data is transmitted to the at least one display controller, wherein the at least one display controller is operable to scale the rendered image data for display on the plurality of display devices, thereby creating image display data, wherein the at least one display controller is operable to transmit the image display data to each of the plurality of display devices, and wherein the plurality of display devices is operable to display the image display data.

In another embodiment, the present invention includes a system for displaying image data including at least one graphics processing unit (GPU), a display engine, at least one display controller, and a plurality of display devices, wherein the image data includes a luminance and two colorimetric coordinates, and wherein the two colorimetric coordinates are independent from the luminance, wherein the at least one GPU is operable to render the image data for display on the plurality of display devices, thereby creating rendered image data, wherein the rendered image data is transmitted to the display engine, wherein the display engine is operable to apply at least one non-linear transfer function to the luminance, thereby creating a luma, wherein the rendered image data is transmitted to the at least one display controller, wherein the at least one display controller is operable to scale the rendered image data for display on the plurality of display devices, thereby creating image display data, wherein the at least one display controller is operable to transmit an image display signal to each of the plurality of display devices, wherein the image display signal includes a portion of the image display data, and wherein the plurality of display devices is operable to display the image display data.

In yet another embodiment, the present invention includes a system for displaying image data including at least one graphics processing unit (GPU), at least one display engine, at least one display controller, and a plurality of display devices, wherein the image data includes a luminance and two colorimetric coordinates, and wherein the two colorimetric coordinates are independent from the luminance, wherein the at least one GPU is operable to render the image data for display on the plurality of display devices, thereby creating rendered image data, wherein the rendered image data is transmitted to the display engine, wherein the display engine is operable to apply at least one non-linear transfer function to the luminance, thereby creating a luma, wherein the rendered image data is transmitted to the at least one display controller, wherein the at least one display controller is operable to scale the rendered image data for display on the plurality of display devices, thereby creating image display data, wherein the at least one display controller is operable to transmit an image display signal to each of the plurality of display devices, wherein the image display signal includes a portion of the image display data, wherein the plurality of display devices is operable to display the image display data, and wherein the image display data includes a plurality of images.

These and other aspects of the present invention will become apparent to those skilled in the art after a reading of the following description of the preferred embodiment when considered with the drawings, as they support the claimed invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.

FIG. 1 illustrates one embodiment of a six primary system including a red primary, a green primary, a blue primary, a cyan primary, a magenta primary, and a yellow primary (“6P-B”) compared to ITU-R BT.709-6.

FIG. 2 illustrates another embodiment of a six primary system including a red primary, a green primary, a blue primary, a cyan primary, a magenta primary, and a yellow primary (“6P-C”) compared to Society of Motion Picture and Television Engineers (SMPTE) RP431-2 for a D60 white point.

FIG. 3 illustrates yet another embodiment of a six primary system including a red primary, a green primary, a blue primary, a cyan primary, a magenta primary, and a yellow primary (“6P-C”) compared to SMPTE RP431-2 for a D65 white point.

FIG. 4 illustrates Super 6Pa compared to 6P-C.

FIG. 5 illustrates Super 6Pb compared to Super 6Pa and 6P-C.

FIG. 6 illustrates an embodiment of an encode and decode system for a multi-primary color system.

FIG. 7 illustrates a sequential method where three color primaries are passed to the transport format as full bit level image data and inserted as normal (“System 2”).

FIG. 8A illustrates one embodiment of a quadrature method (“System 2A”).

FIG. 8B illustrates another embodiment of a quadrature method (“System 2A”).

FIG. 8C illustrates yet another embodiment of a quadrature method (“System 2A”).

FIG. 9A illustrates an embodiment of a stereo quadrature method (“System 2A”).

FIG. 9B illustrates another embodiment of a stereo quadrature method (“System 2A”).

FIG. 9C illustrates yet another embodiment of a stereo quadrature method (“System 2A”).

FIG. 10 illustrates one embodiment of a system encode and decode process using a dual link method (“System 3”).

FIG. 11 illustrates one embodiment of an encoding process using a dual link method.

FIG. 12 illustrates one embodiment of a decoding process using a dual link method.

FIG. 13 illustrates one embodiment of a Yxy encode with an OETF.

FIG. 14 illustrates one embodiment of a Yxy encode without an OETF.

FIG. 15 illustrates one embodiment of a Yxy decode with an electro-optical transfer function (EOTF).

FIG. 16 illustrates one embodiment of a Yxy decode without an EOTF.

FIG. 17 illustrates one embodiment of a 4:2:2 Yxy encode with an OETF.

FIG. 18 illustrates one embodiment of a 4:2:2 Yxy encode without an OETF.

FIG. 19 illustrates one embodiment of a 4:4:4 Yxy encode with an OETF.

FIG. 20 illustrates one embodiment of a 4:4:4 Yxy encode without an OETF.

FIG. 21 illustrates sample placements of Y×y system components for a 4:2:2 pixel mapping.

FIG. 22 illustrates sample placements of Y×y system components for a 4:2:0 pixel mapping.

FIG. 23 illustrates one embodiment of a SMPTE ST292 Y×y system mapping.

FIG. 24 illustrates one embodiment of a SMPTE ST2082 Y×y system mapping.

FIG. 25 illustrates one embodiment of Yxy inserted into a Consumer Technology Association (CTA) 861 stream.

FIG. 26 illustrates one embodiment of a Yxy decode with an EOTF.

FIG. 27 illustrates one embodiment of a Yxy decode without an EOTF.

FIG. 28A illustrates one embodiment of an IPT 4:4:4 encode.

FIG. 28B illustrates one embodiment of an IPT 4:4:4 decode.

FIG. 29A illustrates one embodiment of an ICTCP 4:2:2 encode.

FIG. 29B illustrates one embodiment of an ICTCP 4:2:2 decode.

FIG. 30 illustrates one embodiment of a six-primary color system encode using a 4:4:4 sampling method.

FIG. 31 illustrates one embodiment for a method to package six channels of primary information into the three standard primary channels used in current serial video standards by modifying bit numbers for a 12-bit Serial Digital Interface (SDI) and a 10-bit SDI.

FIG. 32 illustrates a simplified diagram estimating perceived viewer sensation as code values define each hue angle.

FIG. 33 illustrates one embodiment for a method of stacking/encoding six-primary color information using a 4:4:4 video system.

FIG. 34 illustrates one embodiment for a method of unstacking/decoding six-primary color information using a 4:4:4 video system.

FIG. 35 illustrates one embodiment of a 4:4:4 decoder for a six-primary color system.

FIG. 36 illustrates one embodiment of an optical filter.

FIG. 37 illustrates another embodiment of an optical filter.

FIG. 38 illustrates an embodiment of the present invention for sending six primary colors to a standardized transport format.

FIG. 39 illustrates one embodiment of a decode process adding a pixel delay to the RGB data for realigning the channels to a common pixel timing.

FIG. 40 illustrates one embodiment of an encode process for 4:2:2 video for packaging five channels of information into the standard three-channel designs.

FIG. 41 illustrates one embodiment for a non-constant luminance encode for a six-primary color system.

FIG. 42 illustrates one embodiment of a packaging process for a six-primary color system.

FIG. 43 illustrates a 4:2:2 unstack process for a six-primary color system.

FIG. 44 illustrates one embodiment of a process to inversely quantize each individual color and pass the data through an electronic optical function transfer (EOTF) in a non-constant luminance system.

FIG. 45 illustrates one embodiment of a constant luminance encode for a six-primary color system.

FIG. 46 illustrates one embodiment of a constant luminance decode for a six-primary color system.

FIG. 47 illustrates one example of 4:2:2 non-constant luminance encoding.

FIG. 48 illustrates one embodiment of a non-constant luminance decoding system.

FIG. 49 illustrates one embodiment of a 4:2:2 constant luminance encoding system.

FIG. 50 illustrates one embodiment of a 4:2:2 constant luminance decoding system.

FIG. 51 illustrates a raster encoding diagram of sample placements for a six-primary color system.

FIG. 52 illustrates one embodiment of the six-primary color unstack process in a 4:2:2 video system.

FIG. 53 illustrates one embodiment of mapping input to the six-primary color system unstack process.

FIG. 54 illustrates one embodiment of mapping the output of a six-primary color system decoder.

FIG. 55 illustrates one embodiment of mapping the RGB decode for a six-primary color system.

FIG. 56 illustrates one embodiment of an unstack system for a six-primary color system.

FIG. 57 illustrates one embodiment of a legacy RGB decoder for a six-primary, non-constant luminance system.

FIG. 58 illustrates one embodiment of a legacy RGB decoder for a six-primary, constant luminance system.

FIG. 59 illustrates one embodiment of a six-primary color system with output to a legacy RGB system.

FIG. 60 illustrates one embodiment of six-primary color output using a non-constant luminance decoder.

FIG. 61 illustrates one embodiment of a legacy RGB process within a six-primary color system.

FIG. 62 illustrates one embodiment of packing six-primary color system image data into an IC_(T)C_(P) (ITP) format.

FIG. 63 illustrates one embodiment of a six-primary color system converting RGBCMY image data into XYZ image data for an ITP format.

FIG. 64 illustrates one embodiment of six-primary color mapping with SMPTE ST424.

FIG. 65 illustrates one embodiment of a six-primary color system readout for a SMPTE ST424 standard.

FIG. 66 illustrates a process of 2160p transport over 12G-SDI.

FIG. 67 illustrates one embodiment for mapping RGBCMY data to the SMPTE ST2082 standard for a six-primary color system.

FIG. 68 illustrates one embodiment for mapping Y_(RGB) Y_(CMY) C_(R) C_(B) C_(C) C_(Y) data to the SMPTE ST2082 standard for a six-primary color system.

FIG. 69 illustrates one embodiment for mapping six-primary color system data using the SMPTE ST292 standard.

FIG. 70 illustrates one embodiment of the readout for a six-primary color system using the SMPTE ST292 standard.

FIG. 71 illustrates modifications to the SMPTE ST352 standards for a six-primary color system.

FIG. 72 illustrates modifications to the SMPTE ST2022 standard for a six-primary color system.

FIG. 73 illustrates a table of 4:4:4 sampling for a six-primary color system for a 10-bit video system.

FIG. 74 illustrates a table of 4:4:4 sampling for a six-primary color system for a 12-bit video system.

FIG. 75 illustrates sequence substitutions for 10-bit and 12-bit video in 4:2:2 sampling systems in a Y Cb Cr Cc Cy color space.

FIG. 76 illustrates sample placements of six-primary system components for a 4:2:2 sampling system image.

FIG. 77 illustrates sequence substitutions for 10-bit and 12-bit video in 4:2:0 sampling systems using a Y Cb Cr Cc Cy color space.

FIG. 78 illustrates sample placements of six-primary system components for a 4:2:0 sampling system image.

FIG. 79 illustrates modifications to SMPTE ST2110-20 for a 10-bit six-primary color system in 4:4:4 video.

FIG. 80 illustrates modifications to SMPTE ST2110-20 for a 12-bit six-primary color system in 4:4:4 video.

FIG. 81 illustrates modifications to SMPTE ST2110-20 for a 10-bit six primary color system in 4:2:2 video.

FIG. 82 illustrates modifications to SMPTE ST2110-20 for a 12-bit six-primary color system in 4:2:0 video.

FIG. 83 illustrates an RGB sampling transmission for a 4:4:4 sampling system.

FIG. 84 illustrates a RGBCMY sampling transmission for a 4:4:4 sampling system.

FIG. 85 illustrates an example of System 2 to RGBCMY 4:4:4 transmission.

FIG. 86 illustrates a Y Cb Cr sampling transmission using a 4:2:2 sampling system.

FIG. 87 illustrates a Y Cr Cb Cc Cy sampling transmission using a 4:2:2 sampling system.

FIG. 88 illustrates an example of a System 2 to Y Cr Cb Cc Cy 4:2:2 Transmission as non-constant luminance.

FIG. 89 illustrates a Y Cb Cr sampling transmission using a 4:2:0 sampling system.

FIG. 90 illustrates a Y Cr Cb Cc Cy sampling transmission using a 4:2:0 sampling system.

FIG. 91 illustrates a dual stack LCD projection system for a six-primary color system.

FIG. 92 illustrates one embodiment of a single projector.

FIG. 93 illustrates a six-primary color system using a single projector and reciprocal mirrors.

FIG. 94 illustrates a dual stack DMD projection system for a six-primary color system.

FIG. 95 illustrates one embodiment of a single DMD projector solution.

FIG. 96 illustrates one embodiment of a color filter array for a six-primary color system with a white OLED monitor.

FIG. 97 illustrates one embodiment of an optical filter array for a six-primary color system with a white OLED monitor.

FIG. 98 illustrates one embodiment of a matrix of an LCD drive for a six-primary color system with a backlight illuminated LCD monitor.

FIG. 99 illustrates one embodiment of an optical filter array for a six-primary color system with a backlight illuminated LCD monitor.

FIG. 100 illustrates an array for a Quantum Dot (QD) display device.

FIG. 101 illustrates one embodiment of an array for a six-primary color system for use with a direct emissive assembled display.

FIG. 102 illustrates one embodiment of a six-primary color system in an emissive display that does not incorporate color filtered subpixels.

FIG. 103 illustrates one embodiment of a ½ gamma function.

FIG. 104 illustrates a graph of maximum quantizing error using the ½ gamma function.

FIG. 105 illustrates one embodiment of an encoder.

FIG. 106 illustrates one embodiment of a decoder.

FIG. 107 illustrates one embodiment of a display engine operable to interact with a graphics processing unit (GPU) according to the present invention.

FIG. 108 illustrates one embodiment of a ⅓ gamma function.

FIG. 109 illustrates an example embodiment of a video wall of the present invention.

FIG. 110 illustrates one embodiment of a video wall controller of the present invention.

FIG. 111 is a schematic diagram of an embodiment of the invention illustrating a computer system.

DETAILED DESCRIPTION

The present invention is generally directed to a multi-primary color system.

In one embodiment, the present invention includes a system for displaying image data including at least one graphics processing unit (GPU), a display engine, at least one display controller, and a plurality of display devices, wherein the image data includes a luminance and two colorimetric coordinates, and wherein the two colorimetric coordinates are independent from the luminance, wherein the at least one GPU is operable to render the image data for display on the plurality of display devices, thereby creating rendered image data, wherein the rendered image data is transmitted to the display engine, wherein the display engine is operable to apply at least one non-linear transfer function to the luminance, thereby creating a luma, wherein the rendered image data is transmitted to the at least one display controller, wherein the at least one display controller is operable to scale the rendered image data for display on the plurality of display devices, thereby creating image display data, wherein the at least one display controller is operable to transmit the image display data to each of the plurality of display devices, and wherein the plurality of display devices is operable to display the image display data.

In another embodiment, the present invention includes a system for displaying image data including at least one graphics processing unit (GPU), a display engine, at least one display controller, and a plurality of display devices, wherein the image data includes a luminance and two colorimetric coordinates, and wherein the two colorimetric coordinates are independent from the luminance, wherein the at least one GPU is operable to render the image data for display on the plurality of display devices, thereby creating rendered image data, wherein the rendered image data is transmitted to the display engine, wherein the display engine is operable to apply at least one non-linear transfer function to the luminance, thereby creating a luma, wherein the rendered image data is transmitted to the at least one display controller, wherein the at least one display controller is operable to scale the rendered image data for display on the plurality of display devices, thereby creating image display data, wherein the at least one display controller is operable to transmit an image display signal to each of the plurality of display devices, wherein the image display signal includes a portion of the image display data, and wherein the plurality of display devices is operable to display the image display data.

In yet another embodiment, the present invention includes a system for displaying image data including at least one graphics processing unit (GPU), at least one display engine, at least one display controller, and a plurality of display devices, wherein the image data includes a luminance and two colorimetric coordinates, and wherein the two colorimetric coordinates are independent from the luminance, wherein the at least one GPU is operable to render the image data for display on the plurality of display devices, thereby creating rendered image data, wherein the rendered image data is transmitted to the display engine, wherein the display engine is operable to apply at least one non-linear transfer function to the luminance, thereby creating a luma, wherein the rendered image data is transmitted to the at least one display controller, wherein the at least one display controller is operable to scale the rendered image data for display on the plurality of display devices, thereby creating image display data, wherein the at least one display controller is operable to transmit an image display signal to each of the plurality of display devices, wherein the image display signal includes a portion of the image display data, wherein the plurality of display devices is operable to display the image display data, and wherein the image display data includes a plurality of images.

The present invention relates to color systems. A multitude of color systems are known, but they continue to suffer numerous issues. As imaging technology is moving forward, there has been a significant interest in expanding the range of colors that are replicated on electronic displays. Enhancements to the television system have expanded from the early CCIR 601 standard to ITU-R BT.709-6, to SMPTE RP431-2, and ITU-R BT.2020. Each one has increased the gamut of visible colors by expanding the distance from the reference white point to the position of the Red (R), Green (G), and Blue (B) color primaries (collectively known as “RGB”) in chromaticity space. While this approach works, it has several disadvantages. When implemented in content presentation, issues arise due to the technical methods used to expand the gamut of colors seen (typically using a more-narrow emissive spectrum) can result in increased viewer metameric errors and require increased power due to lower illumination source. These issues increase both capital and operational costs.

With the current available technologies, displays are limited in respect to their range of color and light output. There are many misconceptions regarding how viewers interpret the display output technically versus real-world sensations viewed with the human eye. The reason we see more than just the three emitting primary colors is because the eye combines the spectral wavelengths incident on it into the three bands. Humans interpret the radiant energy (spectrum and amplitude) from a display and process it so that an individual color is perceived. The display does not emit a color or a specific wavelength that directly relates to the sensation of color. It simply radiates energy at the same spectrum which humans sense as light and color. It is the observer who interprets this energy as color.

When the CIE 2° standard observer was established in 1931, common understanding of color sensation was that the eye used red, blue, and green cone receptors (James Maxwell & James Forbes 1855). Later with the Munsell vision model (Munsell 1915), Munsell described the vision system to include three separate components: luminance, hue, and saturation. Using RGB emitters or filters, these three primary colors are the components used to produce images on today's modern electronic displays.

There are three primary physical variables that affect sensation of color. These are the spectral distribution of radiant energy as it is absorbed into the retina, the sensitivity of the eye in relation to the intensity of light landing on the retinal pigment epithelium, and the distribution of cones within the retina. The distribution of cones (e.g., L cones, M cones, and S cones) varies considerably from person to person.

Enhancements in brightness have been accomplished through larger backlights or higher efficiency phosphors. Encoding of higher dynamic ranges is addressed using higher range, more perceptually uniform electro-optical transfer functions to support these enhancements to brightness technology, while wider color gamuts are produced by using narrow bandwidth emissions. Narrower bandwidth emitters result in the viewer experiencing higher color saturation. But there can be a disconnect between how saturation is produced and how it is controlled. What is believed to occur when changing saturation is that increasing color values of a color primary represents an increase to saturation. This is not true, as changing saturation requires the variance of a color primary spectral output as parametric. There are no variable spectrum displays available to date as the technology to do so has not been commercially developed, nor has the new infrastructure required to support this been discussed.

Instead, the method that a display changes for viewer color sensation is by changing color luminance. As data values increase, the color primary gets brighter. Changes to color saturation are accomplished by varying the brightness of all three primaries and taking advantage of the dominant color theory.

Expanding color primaries beyond RGB has been discussed before. There have been numerous designs of multi-primary displays. For example, SHARP has attempted this with their four-color QUATTRON TV systems by adding a yellow color primary and developing an algorithm to drive it. Another four primary color display was proposed by Matthew Brennesholtz which included an additional cyan primary, and a six primary display was described by Yan Xiong, Fei Deng, Shan Xu, and Sufang Gao of the School of Physics and Optoelectric Engineering at the Yangtze University Jingzhou China. In addition, AU OPTRONICS has developed a five primary display technology. SONY has also recently disclosed a camera design featuring RGBCMY (red, green, blue, cyan, magenta, and yellow) and RGBCMYW (red, green, blue cyan, magenta, yellow, and white) sensors.

Actual working displays have been shown publicly as far back as the late 1990's, including samples from Tokyo Polytechnic University, Nagoya City University, and Genoa Technologies. However, all of these systems are exclusive to their displays, and any additional color primary information is limited to the display's internal processing.

Additionally, the Visual Arts System for Archiving and Retrieval of Images (VASARI) project developed a colorimetric scanner system for direct digital imaging of paintings. The system provides more accurate coloring than conventional film, allowing it to replace film photography. Despite the project beginning in 1989, technical developments have continued.

None of the prior art discloses developing additional color primary information outside of the display. Moreover, the system driving the display is often proprietary to the demonstration. In each of these executions, nothing in the workflow is included to acquire or generate additional color primary information. The development of a multi-primary color system is not complete if the only part of the system that supports the added primaries is within the display itself.

Referring now to the drawings in general, the illustrations are for the purpose of describing one or more preferred embodiments of the invention and are not intended to limit the invention thereto.

Additional details about multi-primary systems are available in U.S. Pat. Nos. 10,607,527; 10,950,160; 10,950,161; 10,950,162; 10,997,896; 11,011,098; 11,017,708; 11,030,934; 11,037,480; 11,037,481; 11,037,482; 11,043,157; 11,049,431; 11,062,638; 11,062,639; 11,069,279; 11,069,280; and 11,100,838 and U.S. Publication Nos. 20200251039, 20210233454, and 20210209990, each of which is incorporated herein by reference in its entirety.

Traditional displays include three primaries: red, green, and blue. The multi-primary systems of the present invention include at least four primaries. The at least four primaries preferably include at least one red primary, at least one green primary, and/or at least one blue primary. In one embodiment, the at least four primaries include a cyan primary, a magenta primary, and/or a yellow primary. In one embodiment, the at least four primaries include at least one white primary.

In one embodiment, the multi-primary system includes six primaries. In one preferred embodiment, the six primaries include a red (R) primary, a green (G) primary, a blue (B) primary, a cyan (C) primary, a magenta (M) primary, and a yellow (Y) primary, often referred to as “RGBCMY”. However, the systems and methods of the present invention are not restricted to RGBCMY, and alternative primaries are compatible with the present invention.

6P-B

6P-B is a color set that uses the same RGB values that are defined in the ITU-R BT.709-6 television standard. The gamut includes these RGB primary colors and then adds three more color primaries orthogonal to these based on the white point. The white point used in 6P-B is D65 (ISO 11664-2).

In one embodiment, the red primary has a dominant wavelength of 609 nm, the yellow primary has a dominant wavelength of 571 nm, the green primary has a dominant wavelength of 552 nm, the cyan primary has a dominant wavelength of 491 nm, and the blue primary has a dominant wavelength of 465 nm as shown in Table 1. In one embodiment, the dominant wavelength is approximately (e.g., within ±10%) the value listed in the table below. Alternatively, the dominant wavelength is within ±5% of the value listed in the table below. In yet another embodiment, the dominant wavelength is within ±2% of the value listed in the table below.

TABLE 1 x y u′ v′

W (D65) 0.3127 0.3290 0.1978 0.4683 R 0.6400 0.3300 0.4507 0.5228 609 nm G 0.3000 0.6000 0.1250 0.5625 552 nm B 0.1500 0.0600 0.1754 0.1578 464 nm C 0.1655 0.3270 0.1041 0.4463 491 nm M 0.3221 0.1266 0.3325 0.2940 Y 0.4400 0.5395 0.2047 0.5649 571 nm

FIG. 1 illustrates 6P-B compared to ITU-R BT.709-6.

6P-C

6P-C is based on the same RGB primaries defined in SMPTE RP431-2 projection recommendation. Each gamut includes these RGB primary colors and then adds three more color primaries orthogonal to these based on the white point. The white point used in 6P-B is D65 (ISO 11664-2). Two versions of 6P-C are used. One is optimized for a D60 white point (SMPTE ST2065-1), and the other is optimized for a D65 white point. Additional information about white points is available in ISO 11664-2:2007 “Colorimetry—Part 2: CIE standard illuminants” published in 2007 and “ST 2065-1:2012—SMPTE Standard—Academy Color Encoding Specification (ACES),” in ST 2065-1:2012, pp. 1-23, 17 Apr. 2012, doi: 10.5594/SMPTE.ST2065-1.2012, each of which is incorporated herein by reference in its entirety.

In one embodiment, the red primary has a dominant wavelength of 615 nm, the yellow primary has a dominant wavelength of 570 nm, the green primary has a dominant wavelength of 545 nm, the cyan primary has a dominant wavelength of 493 nm, and the blue primary has a dominant wavelength of 465 nm as shown in Table 2. In one embodiment, the dominant wavelength is approximately (e.g., within ±10%) the value listed in the table below. Alternatively, the dominant wavelength is within ±5% of the value listed in the table below. In yet another embodiment, the dominant wavelength is within ±2% of the value listed in the table below.

TABLE 2 x y u′ v′

W (D60) 0.3217 0.3377 0.2008 0.4742 R 0.6800 0.3200 0.4964 0.5256 615 nm G 0.2650 0.6900 0.0980 0.5777 545 nm B 0.1500 0.0600 0.1754 0.1579 465 nm C 0.1627 0.3419 0.0960 0.4540 493 nm M 0.3523 0.1423 0.3520 0.3200 Y 0.4502 0.5472 0.2078 0.5683 570 nm

FIG. 2 illustrates 6P-C compared to SMPTE RP431-2 for a D60 white point.

In one embodiment, the red primary has a dominant wavelength of 615 nm, the yellow primary has a dominant wavelength of 570 nm, the green primary has a dominant wavelength of 545 nm, the cyan primary has a dominant wavelength of 423 nm, and the blue primary has a dominant wavelength of 465 nm as shown in Table 3. In one embodiment, the dominant wavelength is approximately (e.g., within ±10%) the value listed in the table below. Alternatively, the dominant wavelength is within ±5% of the value listed in the table below. In yet another embodiment, the dominant wavelength is within ±2% of the value listed in the table below.

TABLE 3 x y u′ v′

W (D65) 0.3127 0.3290 0.1978 0.4683 R 0.6800 0.3200 0.4964 0.5256 615 nm G 0.2650 0.6900 0.0980 0.5777 545 nm B 0.1500 0.0600 0.1754 0.1579 465 nm C 0.1617 0.3327 0.0970 0.4490 492 nm M 0.3383 0.1372 0.3410 0.3110 Y 0.4470 0.5513 0.2050 0.5689 570 nm

FIG. 3 illustrates 6P-C compared to SMPTE RP431-2 for a D65 white point.

SUPER 6P

One of the advantages of ITU-R BT.2020 is that it can include all of the Pointer colors and that increasing primary saturation in a six-color primary design could also do this. Pointer is described in “The Gamut of Real Surface Colors”, M. R. Pointer, Published in Colour Research and Application Volume #5, Issue #3 (1980), which is incorporated herein by reference in its entirety. However, extending the 6P gamut beyond SMPTE RP431-2 (“6P-C”) adds two problems. The first problem is the requirement to narrow the spectrum of the extended primaries. The second problem is the complexity of designing a backwards compatible system using color primaries that are not related to current standards. But in some cases, there is a need to extend the gamut beyond 6P-C and avoid these problems. If the goal is to encompass Pointer's data set, then it is possible to keep most of the 6P-C system and only change the cyan color primary position. In one embodiment, the cyan color primary position is located so that the gamut edge encompasses all of Pointer's data set. In another embodiment, the cyan color primary position is a location that limits maximum saturation. With 6P-C, cyan is positioned as u′=0.096, v′=0.454. In one embodiment of Super 6P, cyan is moved to u′=0.075, v′=0.430 (“Super 6Pa” (S6Pa)). Advantageously, this creates a new gamut that covers Pointer's data set almost in its entirety. FIG. 4 illustrates Super 6 Pa compared to 6P-C.

Table 4 is a table of values for Super 6 Pa. The definition of x,y are described in ISO 11664-3:2012/CIE S 014 Part 3, which is incorporated herein by reference in its entirety. The definition of u′,v′ are described in ISO 11664-5:2016/CIE S 014 Part 5, which is incorporated herein by reference in its entirety. λ defines each color primary as dominant color wavelength for RGB and complementary wavelengths CMY.

TABLE 4 x y u′ v′

W (D60) 0.3217 0.3377 0.2008 0.4742 W (D65) 0.3127 0.3290 0.1978 0.4683 R 0.6800 0.3200 0.4964 0.5256 615 nm G 0.2650 0.6900 0.0980 0.5777 545 nm B 0.1500 0.0600 0.1754 0.1579 465 nm C 0.1211 0.3088 0.0750 0.4300 490 nm M 0.3523 0.1423 0.3520 0.3200 Y 0.4502 0.5472 0.2078 0.5683 570 nm

In an alternative embodiment, the saturation is expanded on the same hue angle as 6P-C as shown in FIG. 5. Advantageously, this makes backward compatibility less complicated. However, this requires much more saturation (i.e., narrower spectra). In another embodiment of Super 6P, cyan is moved to u′=0.067, v′=0.449 (“Super 6Pb” (S6Pb)). Additionally, FIG. 5 illustrates Super 6Pb compared to Super 6 Pa and 6P-C.

Table 5 is a table of values for Super 6Pb. The definition of x,y are described in ISO 11664-3:2012/CIE S 014 Part 3 published in 2012, which is incorporated herein by reference in its entirety. The definition of u′,v′ are described in ISO 11664-5:2016/CIE S 014 Part 5 published in 2016, which is incorporated herein by reference in its entirety. λ defines each color primary as dominant color wavelength for RGB and complementary wavelengths CMY.

TABLE 5 x y u′ v′

W (ACES D60) 0.32168 0.33767 0.2008 0.4742 W (D65) 0.3127 0.3290 0.1978 0.4683 R 0.6800 0.3200 0.4964 0.5256 615 nm G 0.2650 0.6900 0.0980 0.5777 545 nm B 0.1500 0.0600 0.1754 0.1579 465 nm C 0.1156 0.3442 0.0670 0.4490 493 nm M 0.3523 0.1423 0.3520 0.3200 Y 0.4502 0.5472 0.2078 0.5683 570 nm

In a preferred embodiment, a matrix is created from XYZ values of each of the primaries. As the XYZ values of the primaries change, the matrix changes. Additional details about the matrix are described below.

Formatting and Transportation of Multi-Primary Signals

The present invention includes three different methods to format video for transport: System 1, System 2, and System 3. System 1 is comprised of an encode and decode system, which can be divided into base encoder and digitation, image data stacking, mapping into the standard data transport, readout, unstack, and finally image decoding. In one embodiment, the basic method of this system is to combine opposing color primaries within the three standard transport channels and identify them by their code value.

System 2 uses a sequential method where three color primaries are passed to the transport format as full bit level image data and inserted as normal. The three additional channels are delayed by one pixel and then placed into the transport instead of the first colors. This is useful in situations where quantizing artifacts is critical to image performance. In one embodiment, this system is comprised of the six primaries (e.g., RGB plus a method to delay the CMY colors for injection), image resolution identification to allow for pixel count synchronization, start of video identification, and RGB Delay.

System 3 utilizes a dual link method where two wires are used. In one embodiment, a first set of three channels (e.g., RGB) are sent to link A and a second set of three channels (e.g., CMY) is sent to link B. Once they arrive at the image destination, they are recombined.

To transport up to six color components (e.g., four, five, or six), System 1, System 2, or System 3 can be used as described. If four color components are used, two of the channels are set to 0. If five color components are used, one of the channels is set to 0. Advantageously, this transportation method works for all primary systems described herein that include up to six color components.

Comparison of Three Systems

Advantageously, System 1 fits within legacy SDI, CTA, and Ethernet transports. Additionally, System 1 has zero latency processing for conversion to an RGB display. However, System 1 is limited to 11-bit words.

System 2 is advantageously operable to transport 6 channels using 16-bit words with no compression. Additionally, System 2 fits within newer SDI, CTA, and Ethernet transport formats. However, System 2 requires double bit rate speed. For example, a 4K image requires a data rate for an 8K RGB image.

In comparison, System 3 is operable to transport up to 6 channels using 16-bit words with compression and at the same data required for a specific resolution. For example, a data rate for an RGB image is the same as for a 6P image using System 3. However, System 3 requires a twin cable connection within the video system.

Nomenclature

In one embodiment, a standard video nomenclature is used to better describe each system.

R describes red data as linear light (e.g., without a non-linear function applied). G describes green data as linear light. B describes blue data as linear light. C describes cyan data as linear light. M describes magenta data as linear light. Y^(c) and/or Y describe yellow data as linear light.

R′ describes red data as non-linear light (e.g., with a non-linear function applied). G′ describes green data as non-linear light. B′ describes blue data as non-linear light. C′ describes cyan data as non-linear light. M′ describes magenta data as non-linear light. Y^(c)′ and/or Y′ describe yellow data as non-linear light.

Y₆ describes the luminance sum of RGBCMY data. Y_(RGB) describes a System 2 encode that is the linear luminance sum of the RGB data. Y_(CMY) describes a System 2 encode that is the linear luminance sum of the CMY data.

C_(R) describes the data value of red after subtracting linear image luminance. C_(B) describes the data value of blue after subtracting linear image luminance. C_(C) describes the data value of cyan after subtracting linear image luminance. C_(Y) describes the data value of yellow after subtracting linear image luminance.

Y′_(RGB) describes a System 2 encode that is the nonlinear luminance sum of the RGB data. Y′_(CMY) describes a System 2 encode that is the nonlinear luminance sum of the CMY data. −Y describes the sum of RGB data subtracted from Y₆.

C′_(R) describes the data value of red after subtracting nonlinear image luminance. C describes the data value of blue after subtracting nonlinear image luminance. C′_(C) describes the data value of cyan after subtracting nonlinear image luminance. C′_(Y) describes the data value of yellow after subtracting nonlinear image luminance.

B+Y describes a System 1 encode that includes either blue or yellow data. G+M describes a System 1 encode that includes either green or magenta data. R+C describes a System 1 encode that includes either green or magenta data.

C_(R)+C_(C) describes a System 1 encode that includes either color difference data. C_(B)+C_(Y) describes a System 1 encode that includes either color difference data.

4:4:4 describes full bandwidth sampling of a color in an RGB system. 4:4:4:4:4:4 describes full sampling of a color in an RGBCMY system. 4:2:2 describes an encode where a full bandwidth luminance channel (Y) is used to carry image detail and the remaining components are half sampled as a Cb Cr encode. 4:2:2:2:2 describes an encode where a full bandwidth luminance channel (Y) is used to carry image detail and the remaining components are half sampled as a Cb Cr Cy Cc encode. 4:2:0 describes a component system similar to 4:2:2, but where Cr and Cb samples alternate per line. 4:2:0:2:0 describes a component system similar to 4:2:2, but where Cr, Cb, Cy, and Cc samples alternate per line.

Constant luminance is the signal process where luminance (Y) values are calculated in linear light. Non-constant luminance is the signal process where luminance (Y) values are calculated in nonlinear light.

Deriving Color Components

When using a color difference method (4:2:2), several components need specific processing so that they can be used in lower frequency transports. These are derived as:

$\begin{matrix} {{Y_{6}^{\prime} = {{0.1063R^{\prime}} + {0.23195Y^{c^{\prime}}} + {0.3576G^{\prime}} + {0.19685C^{\prime}} + {0.0361B^{\prime}} + {0.0712M^{\prime}}}}{G_{6}^{\prime} = {{\left( \frac{1}{{0.3}576Y} \right) - \left( {{0.1}063R^{\prime}} \right) - \left( {{0.0}361B^{\prime}} \right) - \left( {{0.1}9685C^{\prime}} \right) - \left( {{0.2}3195Y^{C^{\prime}}} \right) - \left( {0.0712M^{\prime}} \right) - Y^{\prime}} = {Y_{6}^{\prime} - \left( {C^{\prime} + Y^{c^{\prime}} + M^{\prime}} \right)}}}{C_{R}^{\prime} = {{\frac{R^{\prime} - Y_{6}^{\prime}}{{1.7}874}C_{B}^{\prime}} = {{\frac{B^{\prime} - Y_{6}^{\prime}}{{1.9}278}C_{C}^{\prime}} = {{\frac{C^{\prime} - Y_{6}^{\prime}}{1.6063}C_{Y}^{\prime}} = \frac{Y^{C^{\prime}} - Y_{6}^{\prime}}{{1.5}361}}}}}{R^{\prime} = {{\frac{C_{R}^{\prime} - Y_{6}^{\prime}}{{1.7}874}B^{\prime}} = {{\frac{C_{B}^{\prime} - Y_{6}^{\prime}}{1.9278}C^{\prime}} = {{\frac{C_{C}^{\prime} - Y_{6}^{\prime}}{{1.6}063}Y^{C^{\prime}}} = \frac{C_{Y}^{\prime} - Y_{6}^{\prime}}{{1.5}361}}}}}} & \; \end{matrix}$

The ratios for Cr, Cb, Cc, and Cy are also valid in linear light calculations.

Magenta can be calculated as follows:

$M^{\prime} = {{\frac{B^{\prime} + R^{\prime}}{B^{\prime} \times R^{\prime}}\mspace{14mu}{or}\mspace{14mu} M} = \frac{B + R}{B \times R}}$

System 1

In one embodiment, the multi-primary color system is compatible with legacy systems. A backwards-compatible multi-primary color system is defined by a sampling method. In one embodiment, the sampling method is 4:4:4. In one embodiment, the sampling method is 4:2:2. In another embodiment, the sampling method is 4:2:0. In one embodiment of a backwards compatible multi-primary color system, new encode and decode systems are divided into the steps of performing base encoding and digitization, image data stacking, mapping into the standard data transport, readout, unstacking, and image decoding (“System 1”). In one embodiment, System 1 combines opposing color primaries within three standard transport channels and identifies them by their code value. In one embodiment of a backwards-compatible multi-primary color system, the processes are analog processes. In another embodiment of a backwards compatible multi-primary color system, the processes are digital processes.

In one embodiment, the sampling method for a multi-primary color system is a 4:4:4 sampling method. Black and white bits are redefined. In one embodiment, putting black at midlevel within each data word allows the addition of CMY color data.

FIG. 6 illustrates an embodiment of an encode and decode system for a multi-primary color system. In one embodiment, the multi-primary color encode and decode system is divided into a base encoder and digitation, image data stacking, mapping into the standard data transport, readout, unstack, and finally image decoding (“System 1”). In one embodiment, the method of this system combines opposing color primaries within the three standard transport channels and identifies them by their code value. In one embodiment, the encode and decode for a multi-primary color system are analog-based. In another embodiment, the encode and decode for a multi-primary color system are digital-based. System 1 is designed to be compatible with lower bandwidth systems and allows a maximum of 11 bits per channel and is limited to sending only three channels of up to six primaries at a time. In one embodiment, it does this by using a stacking system where either the color channel or the complementary channel is decoded depending on the bit level of that one channel.

System 2

FIG. 7 illustrates a sequential method where three color primaries are passed to the transport format as full bit level image data and inserted as normal (“System 2”). The three additional channels are delayed by one pixel and then placed into the transport instead of the first colors. This method is useful in situations where quantizing artifacts is critical to image performance. In one embodiment, this system is comprised of six primaries (RGBCMY), a method to delay the CMY colors for injection, image resolution identification to all for pixel count synchronization, start of video identification, RGB delay, and for YCCCCC systems, logic to select the dominant color primary. The advantage of System 2 is that full bit level video can be transported, but at double the normal data rate.

System 2A

System 2 sequences on a pixel to pixel basis. However, a quadrature method is also possible (“System 2A”) that is operable to transport six primaries in stereo or twelve primary image information. Each quadrant of the frame contains three color primary data sets. These are combined in the display. A first set of three primaries is displayed in the upper left quadrant, a second set of three primaries is displayed in the upper right quadrant, a third set of primaries is displayed in the lower left quadrant, and a fourth set of primaries is displayed in lower right quadrant. In one embodiment, the first set of three primaries, the second set of three primaries, the third set of three primaries, and the fourth set of three primaries do not contain any overlapping primaries (i.e., twelve different primaries). Alternatively, the first set of three primaries, the second set of three primaries, the third set of three primaries, and the fourth set of three primaries contain overlapping primaries (i.e., at least one primary is contained in more than one set of three primaries). In one embodiment, the first set of three primaries and the third set of three primaries contain the same primaries and the second set of three primaries and the fourth set of three primaries contain the same primaries.

FIG. 8A illustrates one embodiment of a quadrature method (“System 2A”). In the example shown in FIG. 8A, a first set of three primaries (e.g., RGB) is displayed in the upper left quadrant, a second set of three primaries (e.g., CMY) is displayed in the upper right quadrant, a third set of three primaries (e.g., GC, BM, and RY) is displayed in the lower left quadrant, and a fourth set of three primaries (e.g., MR, YG, and CB) is displayed in the lower right quadrant. Although the example shown in FIG. 8A illustrates a backwards compatible 12P system, this is merely for illustrative purposes. The present invention is not limited to the twelve primaries shown in FIG. 8A. Additionally, alternative pixel arrangements are compatible with the present invention.

FIG. 8B illustrates another embodiment of a quadrature method (“System 2A”). In the example shown in FIG. 8B, a first set of three primaries (e.g., RGB) is displayed in the upper left quadrant, a second set of three primaries (e.g., CMY) is displayed in the upper right quadrant, a third set of three primaries (e.g., GC, BM, and RY) is displayed in the lower left quadrant, and a fourth set of three primaries (e.g., MR, YG, and CB) is displayed in the lower right quadrant. Although the example shown in FIG. 8B illustrates a backwards compatible 12P system, this is merely for illustrative purposes. The present invention is not limited to the twelve primaries shown in FIG. 8B. Additionally, alternative pixel arrangements are compatible with the present invention.

FIG. 8C illustrates yet another embodiment of a quadrature method (“System 2A”). In the example shown in FIG. 8C, a first set of three primaries (e.g., RGB) is displayed in the upper left quadrant, a second set of three primaries (e.g., CMY) is displayed in the upper right quadrant, a third set of three primaries (e.g., GC, BM, and RY) is displayed in the lower left quadrant, and a fourth set of three primaries (e.g., MR, YG, and CB) is displayed in the lower right quadrant. Although the example shown in FIG. 8C illustrates a backwards compatible 12P system, this is merely for illustrative purposes. The present invention is not limited to the twelve primaries shown in FIG. 8C. Additionally, alternative pixel arrangements are compatible with the present invention.

FIG. 9A illustrates an embodiment of a quadrature method (“System 2A”) in stereo. In the example shown in FIG. 9A, a first set of three primaries (e.g., RGB) is displayed in the upper left quadrant, a second set of three primaries (e.g., CMY) is displayed in the upper right quadrant, a third set of three primaries (e.g., RGB) is displayed in the lower left quadrant, and a fourth set of three primaries (e.g., CMY) is displayed in the lower right quadrant. This embodiment allows for separation of the left eye with the first set of three primaries and the second set of three primaries and the right eye with the third set of three primaries and the fourth set of three primaries. Alternatively, a first set of three primaries (e.g., RGB) is displayed in the upper left quadrant, a second set of three primaries (e.g., RGB) is displayed in the upper right quadrant, a third set of three primaries (e.g., CMY) is displayed in the lower left quadrant, and a fourth set of three primaries (e.g., CMY) is displayed in the lower right quadrant. Alternative pixel arrangements and primaries are compatible with the present invention.

FIG. 9B illustrates another embodiment of a quadrature method (“System 2A”) in stereo. Alternative pixel arrangements and primaries are compatible with the present invention.

FIG. 9C illustrates yet another embodiment of a quadrature method (“System 2A”) in stereo. Alternative pixel arrangements and primaries are compatible with the present invention.

Advantageously, System 2A allows for the ability to display multiple primaries (e.g., 12P and 6P) on a conventional monitor. Additionally, System 2A allows for a simplistic viewing of false color, which is useful in the production process and allows for visualizing relationships between colors. It also allows for display of multiple projectors (e.g., a first projector, a second projector, a third projector, and a fourth projector).

System 3

FIG. 10 illustrates one embodiment of a system encode and decode process using a dual link method (“System 3”). System 3 utilizes a dual link method where two wires are used. In one embodiment, RGB is sent to link A and CMY is sent to link B. After arriving at the image destination, the two links are recombined. Alternative primaries are compatible with the present invention.

System 3 is simpler and more straight forward than Systems 1 and 2. The advantage with this system is that adoption is simply to format non-RGB primaries (e.g., CMY) on a second link. In one example, for an SDI design, RGB is sent on a standard SDI stream just as it is currently done. There is no modification to the transport and this link is operable to be sent to any RGB display requiring only the compensation for the luminance difference because the non-RGB (e.g., CMY) components are not included. Data for the non-RGB primaries (e.g., CMY data) is transported in the same manner as RGB data. This data is then combined in the display to make up a 6P image. The downside is that the system requires two wires to move one image. This system is operable to work with most any format including SMPTE ST292, 424, 2082, and 2110. It also is operable to work with dual High-Definition Multimedia Interface (HDMI)/CTA connections. In one embodiment, the system includes at least one transfer function (e.g., OETF, EOTF).

FIG. 11 illustrates one embodiment of an encoding process using a dual link method. Alternative numbers of primaries and alternative primaries are compatible with the present invention.

FIG. 12 illustrates one embodiment of a decoding process using a dual link method. Alternative numbers of primaries and alternative primaries are compatible with the present invention.

System 4

Color is generally defined by three component data levels (e.g., RGB, YCbCr). A serial data stream must accommodate a word for each color contributor (e.g., R, G, B). Use of more than three primaries requires accommodations to fit this data based on an RGB concept. This is why System 1, System 2, and System 3 use stacking, sequencing, and/or dual links. Multiple words are required to define a single pixel, which is inefficient because not all values are needed.

In a preferred embodiment, color is defined as a colorimetric coordinate. Thus, every color is defined by three words. Serial systems are already based on three color contributors (e.g., RGB). System 4 preferably uses XYZ or Yxy as the three color contributors. System 4 preferably uses two colorimetric coordinates and a luminance or a luma. In one embodiment, System 4 includes, but is not limited to, Yxy, L*a*b*, ICTCP, YCbCr, YUV, Yu′v′, YPbPr, YIQ, and/or XYZ. In a preferred embodiment, System 4 uses color contributors that are independent of a white point and/or a reference white value. Alternatively, System 4 uses color contributors that are not independent of a white point and/or a reference white value (e.g., YCbCr, L*a*b*).

In another embodiment, System 4 uses color contributors that require at least one known primaries (e.g., ICTCP). In yet another embodiment, L*C*h or other non-rectangular coordinate systems (e.g., cylindrical, polar) are compatible with the present invention. In one embodiment, a polar system is defined from Yxy by converting x,y to a hue angle (e.g., θ=arctan(y/x)) and a magnitude vector (e.g., r) that is similar to C* in an L*C*h polar system. However, when converting Yxy to a polar system, θ is restricted from 0 to 90 degrees because x and y are always non-negative. In one embodiment, the θ angle is expanded by applying a transform (e.g., an affine transform) to x, y data wherein the x, y values of the white point of the system (e.g., D65) are subtracted from the x, y data such that the x, y data includes negative values. Thus, θ ranges from 0 to 360 degrees and the polar plot of the Yxy data is operable to occupy more than one quadrant.

XYZ has been used in cinema for over 10 years. XYZ needs 16-bit float and 32-bit float encode or a minimum of 12 bits for gamma or log encoded images for better quality. Transport of XYZ must be accomplished using a 4:4:4 sample system. Less than a 4:4:4 sample system causes loss of image detail because Y is used as a coordinate along with X and Z and carries color information, not a value. Further, X and Z are not orthogonal to Y and, therefore, also include luminance information. Advantageously, converting to Yxy or Yu′v′ concentrates the luminance in Y only, leaving two independent and pure chromaticity values. In one embodiment, X, Y, and Z are used to calculate x and y. Alternatively, X, Y, and Z are used to calculate u′ and v′.

However, if Y or an equivalent component is used as a luminance value with two independent colorimetric coordinates (e.g., x and y, u′ and v′, u and v, etc.) used to describe color, then a system using subsampling is possible because of differing visual sensitivity to color and luminance. In one embodiment, I or L* components are used instead of Y, wherein I and/or L* data are created using gamma functions. As a non-limiting example, I is created using a 0.5 gamma function, while L* is created using a ⅓ gamma function. In these embodiments, additional gamma encoding is not applied to the data as part of transport. The system is operable to use any two independent colorimetric coordinates with similar properties to x and y, u′ and v′, and/or u and v. In a preferred embodiment, the two independent colorimetric coordinates are x and y and the system is a Y×y system. In another preferred embodiment, the two colorimetric coordinates are u′ and v′ and the system is a Yu′v′ system. Advantageously, the two independent colorimetric coordinates (e.g., x and y) are independent of a white point. This reduces the complexity of the system when compared to XYZ, which includes a luminance value for all three channels (i.e., X, Y, and Z). Further, this also provides an advantage for subsampling (e.g., 4:2:2, 4:2:0 and 4:1:1). In one embodiment, other systems (e.g., ICTCP and L*a*b*) require a white point in calculations. However, a conversion matrix, e.g., using the white point of [1,1,1] is operable to be used for ICTCP and L*a*b* to remove the white point reference. The white point reference is still operable to then be recaptured as [1,1,1] in XYZ space. In a preferred embodiment, the image data includes a reference to at least one white point.

Current technology uses components derived from the legacy National Television System Committee (NTSC). Encoding described in SMPTE, International Telecommunication Union (ITU), and CTA standards includes methods using subsampling as 4:2:2, 4:2:0, and 4:1:1. Advantageously, this allows for color transportation of more than three primaries, including, but not limited to, at least four primaries, at least five primaries, at least six primaries, at least seven primaries, at least eight primaries, at least nine primaries, at least ten primaries, at least eleven primaries, and/or at least twelve primaries (e.g., through a SMPTE ST292 or an HDMI 1.2 transport).

System 1, System 2, and System 3 use a YCbCr expansion to transport six color primary data sets, and the same transport (e.g., a YCbCr expansion) is operable to accommodate the image information as Yxy where Y is the luminance information and x,y describe CIE 1931 color coordinates in the half sample segments of the data stream (e.g., 4:2:2). Alternatively, x,y are fully sampled (e.g., 4:4:4). In yet another embodiment, the sampling rate is 4:2:0 or 4:1:1. In still another embodiment, the same transport is operable to accommodate the information as luminance and colorimetric coordinates other than x,y. In one embodiment, the same transport is operable to accommodate data set using one channel of luminance data and two channels of colorimetric data. Alternatively, the same transport is operable to accommodate the image information as Yu′v′ with full sampling (e.g., 4:4:4) or partial sampling (e.g., 4:2:2, 4:2:0, 4:1:1). In one embodiment, the same transport is used with full sampling (e.g., XYZ).

Advantageously, there is no need to add more channels, nor is there any need to separate the luminance information from the color components. Further, for example, x,y have no reference to any primaries because x,y are explicit colorimetric positions. In the Yxy space, x and y are chromaticity coordinates such that x and y can be used to define a gamut of visible color. Similarly, in the Yu′v′ space, u′ and v′ are explicit colorimetric positions. It is possible to define a gamut of visible color in other formats (e.g., L*a*b*, IC_(T)C_(P), YCbCr), but it is not always trivial. To determine if a color is visible in Yxy space, it must be determined if the sum of x and y is greater than or equal to zero. If not, the color is not visible. If the x,y point is within the CIE x,y locus (CIE horseshoe), the color is visible. If not, the color is not visible. The Y value plays a role especially in a display. In one embodiment, the display is operable to reproduce an x,y color within a certain range of Y values, wherein the range is a function of the primaries. Another advantage is that an image can be sent as linear data (e.g., without a non-linear function applied) with a non-linear function (e.g., opto-optical transfer function (OOTF)) added after the image is received, rather than requiring a non-linear function (e.g., OOTF) applied to the signal. This allows for a much simpler encode and decode system. In one embodiment, only Y, L*, or I are altered by a non-linear function. Alternatively, Y, L*, or I are sent linearly (e.g., without a non-linear function applied).

FIG. 13 illustrates one embodiment of a Yxy encode with an opto-electronic transfer function (OETF). Image data is acquired in any format operable to be converted to XYZ data (e.g., RGB, RGBCMY, CMYK). The XYZ data is then converted to Yxy data, and the Yxy data is processed through an OETF. The processed Yxy data is then converted to a standardized transportation format for mapping and readout. Advantageously, x and y remain as independent colorimetric coordinates and the non-linear function (e.g., OETF, log, gamma, PQ) is only applied to Y, thus avoiding compression or loss of colorimetric data. In one embodiment, the OETF is described in ITU-R BT.2100 or ITU-R BT.1886. Advantageously, Y is orthogonal to x and y, and remains orthogonal to x and y even when a non-linear function is applied. Although the example shown includes Yxy data, System 4 is compatible with a plurality of data formats including data formats using one luminance coordinate and two colorimetric coordinates.

There are many different RGB sets so the matrix used to convert the image data from a set of RGB primaries to XYZ will involve a specific solution given the RGB values:

$\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = {\begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix}\begin{bmatrix} R \\ G \\ B \end{bmatrix}}$

In an embodiment where the image data is 6P-B data, the following equation is used to convert to XYZ data:

$\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}_{D\; 65} = {\begin{bmatrix} {{0.4}124000} & {{0.3}576000} & {{0.1}805000} & {{0.1}574900} & {{0.3}427600} & {{0.4}502060} \\ {{0.2}126000} & {{0.7}152000} & {{0.0}721998} & {{0.3}132660} & {{0.1}347200} & {{0.5}520130} \\ {{0.0}193001} & {{0.1}192000} & {{0.9}505000} & {{0.4}814200} & {{0.5}866620} & {{0.0}209755} \end{bmatrix}\begin{bmatrix} R \\ G \\ B \\ C \\ M \\ Y \end{bmatrix}}_{{6P} - B}$

In an embodiment where the image data is 6P-C data with a D60 white point, the following equation is used to convert to XYZ data:

$\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}_{D\; 60_{ACES}} = {\begin{bmatrix} {{0.5}0836664} & {{0.2}6237069} & {{0.1}8337670} & {{0.1}5745217} & {{0.3}6881328} & {{0.4}2784843} \\ {{0.2}3923145} & {{0.6}8739938} & {{0.0}7336917} & {{0.3}3094114} & {{0.1}4901541} & {{0.5}2004327} \\ {{- {0.0}}001363} & {{0.0}4521596} & {{0.9}6599714} & {{0.4}7964602} & {{0.5}2900498} & {{0.0}0242485} \end{bmatrix}\begin{bmatrix} R \\ G \\ B \\ C \\ M \\ Y \end{bmatrix}}_{{6P} - C_{{refD}\; 60}}$

In an embodiment where the image data is 6P-C data with a D65 white point, the following equation is used to convert to XYZ data:

$\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}_{D\; 65} = {{{\quad\quad}\begin{bmatrix} {{0.4}8657095} & {{0.2}6566769} & {{0.1}9821729} & {{0.3}2295962} & {{- {0.5}}4969800} & {{1.1}77199435} \\ {{0.2}2897456} & {{0.6}9173852} & {{0.0}7928691} & {{0.6}7867175} & {{- {0.2}}2203240} & {{0.5}43360700} \\ {{0.0}0000000} & {{0.0}4511338} & {{1.0}4394437} & {{0.9}8336936} & {{- {0.7}}8858190} & {{0.8}94270250} \end{bmatrix}}\begin{bmatrix} R \\ G \\ B \\ C \\ M \\ Y \end{bmatrix}}_{{6P} - C_{{refD}\; 65}}$

To convert the XYZ data to Yxy data, the following equations are used:

$Y = {{Y\; x} = {{\frac{X}{\left( {X + Y + Z} \right)}y} = \frac{Y}{\left( {X + Y + Z} \right)}}}$

FIG. 14 illustrates one embodiment of a Yxy encode without an OETF. Image data is acquired in any format operable to be converted to XYZ data (e.g., RGB, RGBCMY, CMYK). The XYZ data is then converted to Yxy data, and then converted to a standardized transportation format for mapping and readout. Although the example in FIG. 14 shows a Yxy encode, System 4 is operable to be used with a plurality of data formats.

FIG. 15 illustrates one embodiment of a Yxy decode with an electro-optical transfer function (EOTF). After mapping and readout, the data is processed through an EOTF to yield the Yxy data. The Yxy data is then converted back to the XYZ data. The XYZ data is operable to be converted to multiple data formats including, but not limited to, RGB, CMYK, 6P (e.g., 6P-B, 6P-C), and gamuts including at least four primaries through at least twelve primaries. Although the example in FIG. 15 shows a Yxy decode, System 4 is operable to be used with a plurality of data formats.

Finally, the XYZ data must converted to the correct standard color space. In an embodiment where the color gamut used is a 6P-B color gamut, the following equations are used:

$\begin{bmatrix} R \\ G \\ B \end{bmatrix}_{{6P} - B} = {{{\begin{bmatrix} {{3.2}40625} & {{- {1.5}}37208} & {{- {0.4}}98629} \\ {{- {0.9}}68931} & {{1.8}75756} & {{0.0}41518} \\ {{0.0}55710} & {{- {0.2}}04021} & {{1.0}56996} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}_{D\; 65}\begin{bmatrix} C \\ M \\ Y \end{bmatrix}}_{{6P} - B} = {\begin{bmatrix} {{- {3.4}}96203} & {{2.7}98197} & {{1.4}00100} \\ {{2.8}22710} & {{- {2.3}}24505} & {{0.5}89173} \\ {{1.2}95195} & {{0.7}90883} & {{- {0.9}}38342} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}_{D\; 65}}$

In an embodiment where the color gamut used is a 6P-C color gamut with a D60 white point, the following equations are used:

$\begin{bmatrix} R \\ G \\ B \end{bmatrix}_{{6P} - C_{{refD}\; 60}} = {{{\begin{bmatrix} {{2.4}02666} & {{- {0.8}}97456} & {{- {0.3}}88041} \\ {{- {0.8}}32567} & {{1.7}69204} & {{0.0}23712} \\ {{0.0}38833} & {{- {0.0}}82520} & {{1.0}36625} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}_{D\; 60_{ACES}}\begin{bmatrix} C \\ M \\ Y \end{bmatrix}}_{{6P} - C_{{refD}\; 60}} = {\begin{bmatrix} {{- {2.9}}59036} & {{2.4}27947} & {{1.3}79050} \\ {{2.6}95538} & {{- {2.2}}20786} & {{0.6}47402} \\ {{1.1}16577} & {{1.0}07431} & {{- {1.0}}61986} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}_{D\; 60_{ACES}}}$

In another embodiment where the color used is a 6P-C color gamut with a D65 white point, the following equations are used:

$\begin{bmatrix} R \\ G \\ B \end{bmatrix}_{{6P} - C_{{refD}\; 65}} = {{{\begin{bmatrix} {{2.4}79190} & {{- {0.9}}19911} & {{- {0.4}}00759} \\ {{- {0.8}}29514} & {{1.7}62731} & {{0.0}23585} \\ {{0.0}36423} & {{- {0.0}}76852} & {{0.9}57005} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}_{D\; 65}\begin{bmatrix} C \\ M \\ Y \end{bmatrix}}_{{6P} - C_{{refD}\; 65}} = {\begin{bmatrix} {{- {3.0}}20525} & {{2.4}44939} & {{1.3}09331} \\ {{2.6}86642} & {{- {2.1}}80032} & {{0.5}75266} \\ {{1.1}98493} & {{0.9}82883} & {{- {1.0}}30246} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}_{D\; 65}}$

In an embodiment where the color gamut used is an ITU-R BT709.6 color gamut, the matrices are as follows:

$\begin{bmatrix} R \\ G \\ B \end{bmatrix}_{{BT}{.709}} = {\begin{bmatrix} {{3.2}405} & {{- {1.5}}371} & {{- {0.4}}985} \\ {{- {0.9}}693} & {{1.8}760} & {{0.0}416} \\ {{0.0}556} & {{- {0.2}}040} & {{1.0}572} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}$

In an embodiment where the color gamut used is a SMPTE RP431-2 color gamut, the matrices are as follows:

$\begin{bmatrix} R \\ G \\ B \end{bmatrix}_{{RP}\; 431} = {\begin{bmatrix} {{2.7}254} & {{- {1.0}}180} & {{- {0.4}}402} \\ {{- {0.7}}952} & {{1.6}897} & {{0.0}226} \\ {{0.0}412} & {{- {0.0}}876} & {{1.1}009} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}$

In an embodiment where the color gamut used is an ITU-R BT.2020/2100 color gamut, the matrices are as follows:

$\begin{bmatrix} R \\ G \\ B \end{bmatrix}_{{BT}\; 2020} = {\begin{bmatrix} {{1.7}166512} & {{- {0.3}}556708} & {{- {0.2}}533663} \\ {{- {0.6}}666844} & {{1.6}164812} & {{0.0}157685} \\ {{0.0}176399} & {{- {0.0}}427706} & {{0.9}421031} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}$

To convert the Yxy data to the XYZ data, the following equations are used:

Y = Y $X = {\left( \frac{x}{y} \right)Y}$ $Z = {\left( \frac{\left( {1 - x - y} \right)}{y} \right)Y}$

FIG. 16 illustrates one embodiment of a Yxy decode without an EOTF. After mapping and readout, the Yxy data is then converted to the XYZ data. The XYZ data is operable to be converted to multiple data formats including, but not limited to, RGB, CMYK, 6P (e.g., 6P-B, 6P-C), and gamuts including at least four primaries through at least twelve primaries. Although the example in FIG. 16 shows a Yxy encode, System 4 is operable to be used with a plurality of data formats.

FIG. 17 illustrates one embodiment of a 4:2:2 Yxy encode with an OETF. A full bandwidth luminance channel (Y) is used to carry image detail and the remaining color coordinate components (e.g., x,y) are half sampled. In the example shown in FIG. 17, the Yxy data undergoes a 4:2:2 encode. Other encoding methods (e.g., 4:4:4, 4:2:0, 4:1:1) are compatible with the present invention. Other quantization methods and bit depths are also compatible with the present invention. In one embodiment, the bit depth is 8 bits, 10 bits, 12 bits, 14 bits, and/or 16 bits. In one embodiment, the Y×y values are sampled as floats. Although the example in FIG. 17 shows a Yxy decode for 12-bit quantization, System 4 is operable to be used with a plurality of data formats.

FIG. 18 illustrates one embodiment of a 4:2:2 Yxy encode without an OETF. In the example shown in FIG. 18, the Yxy data undergoes a 4:2:2 encode. Other encoding methods (e.g., 4:4:4, 4:2:0, 4:1:1) are compatible with the present invention. Although the example in FIG. 18 shows a Yxy encode, System 4 is operable to be used with a plurality of data formats.

FIG. 19 illustrates one embodiment of a 4:4:4 Yxy encode with an OETF. A full bandwidth luminance channel (Y) is used to carry image detail and the remaining color coordinate components (e.g., x,y) are also fully sampled. In the example shown in FIG. 19, the Yxy data undergoes a 4:4:4 encode. Other encoding methods (e.g., 4:2:2, 4:2:0, 4:1:1) are compatible with the present invention. Although the example in FIG. 19 shows a Yxy encode, System 4 is operable to be used with a plurality of data formats.

FIG. 20 illustrates one embodiment of a 4:4:4 Yxy encode without an OETF. In the example shown in FIG. 20, the Yxy data undergoes a 4:4:4 encode. Other encoding methods (e.g., 4:2:2, 4:2:0, 4:1:1) are compatible with the present invention. Although the example in FIG. 20 shows a Yxy encode, System 4 is operable to be used with a plurality of data formats.

FIG. 21 illustrates sample placements of Y×y system components for a 4:2:2 pixel mapping. A plurality of pixels (e.g., P₀₀-P₃₅) is shown in FIG. 21. The first subscript number refers to a row number and the second subscript number refers to a column number. For pixel P₀₀, Y_(INT00)′ is the luma and the color components are x_(INT00) and y_(INT00). For pixel P₀₁, Y_(INT01)′ is the luma. For pixel P₁₀, Y_(INT10)′ is the luma and the color components are x_(INT10) and y_(INT10). For pixel P₁₁, Y_(INT11)′ is the luma. In one embodiment, the luma and the color components (e.g., the set of image data) corresponding to a particular pixel (e.g., P₀₀) is used to calculate color and brightness of subpixels. Although the example shown in FIG. 21 includes luma, it is equally possible that the data is sent linearly as luminance (e.g., Y_(INT00)). Further, although the example in FIG. 21 includes Y×y system components, System 4 is operable to be used with a plurality of data formats.

FIG. 22 illustrates sample placements of Y×y system components for a 4:2:0 pixel mapping. A plurality of pixels (e.g., P₀₀-P₃₅) is shown in FIG. 22. The first subscript number refers to a row number and the second subscript number refers to a column number. For pixel P₀₀, Y_(INT00)′ is the luma and the color components are x_(INT00) and y_(INT00). For pixel P₀₁, Y_(INT01)′ is the luma. For pixel P₁₀, Y_(INT10)′ is the luma. For pixel P₁₁, Y_(INT11)′ is the luma. In one embodiment, the luma and the color components corresponding to a particular pixel (e.g., P₀₀) are used to calculate color and brightness of subpixels. Although the example shown in FIG. 22 includes luma, it is equally possible that the data is sent linearly as luminance (e.g., Y_(INT00)). Further, Although the example in FIG. 22 includes Y×y system components, System 4 is operable to be used with a plurality of data formats.

In one embodiment, the set of image data includes pixel mapping data. In one embodiment, the pixel mapping data includes a subsample of the set of values in a color space. In a preferred embodiment, the color space is a Yxy color space (e.g., 4:2:2). In one embodiment, the pixel mapping data includes an alignment of the set of values in the color space (e.g., Yxy color space, Yu′v′).

Table 6 illustrates mapping to SMPTE ST2110 for 4:2:2 sampling of Yxy data. Table 7 illustrates mapping to SMPTE ST2110 for 4:4:4 linear and non-linear sampling of Yxy data. The present invention is compatible with a plurality of data formats (e.g., Yu′v′) and not restricted to Yxy data.

TABLE 6 Bit pgroup Y PbPr Sampling Depth octets pixels Sample Order Yxy 4:2:2  8 8 2 C_(B)′, Y0′, C_(R)′, Y1 y0, Y0′, x0, y1, Y1′, x1 10 10 2 C_(B)′, Y0′, C_(R)′, Y1′ y0, Y0′, x0, y1, Y1′, x1 12 12 2 C_(B)′, Y0′, C_(R)′, Y1′ y0, Y0′, x0, y1, Y1′, x1 16, 16f 16 2 C′_(B), Y0′, C′_(R), Y1 y0, Y0′, x0, y1, Y1′, x1

TABLE 7 Bit pgroup Sampling Depth octets pixels RGB/XYZ Sample Order Yxy 4:4:4 8 3 1 R, G, B x, Y′, y Linear 10 15 4 R0, G0, B0, R1, G1, B1, R2, x, Y0′, y, x, Y1′, y, G2, B2 x, Y2′, y 12 9 2 R0, G0, B0, R1, G1, B1 x, Y0′, y, x, Y1′, y 16, 16f 6 1 R, G, B x, Y′, y 4:4:4 8 3 1 R′, G′, B′ x, Y′, y Non- 10 15 4 R0′, G0′, B0′, R1′, G1′, B1′, x, Y0′, y, x, Y1′, y, Linear R2′, G2′, B2′ x, Y2′, y 12 9 2 R0′, G0′, B0′, R1′, G1′, B1′ x, Y0′, y, x, Y1′, y 16, 16f 6 1 R′, G′, B′ x, Y′, y

FIG. 23 illustrates one embodiment of a SMPTE ST292 Yxy system mapping. To fit a Yxy system into a SMPTE ST292 stream involves the following substitutions: Y_(INT)′ is placed in the Y data segments, x_(INT) is placed in the Cr data segments, and y_(INT) is placed in the Cb data segments. In a preferred embodiment, luminance or luma is placed in the Y data segments, a first colorimetric coordinate is placed in the Cr data segments, and a second colorimetric coordinate is placed in the Cb data segments. Although the example in FIG. 23 shows a Y×y system mapping, System 4 is operable to be used with a plurality of data formats (e.g., Yu′v′).

FIG. 24 illustrates one embodiment of a SMPTE ST2082 Y×y system mapping. To fit a Y×y system into a SMPTE ST292 stream involves the following substitutions: Y_(INT)′ is placed in the G data segments, x_(INT) is placed in the R data segments, and y_(INT) is placed in the B data segments. In a preferred embodiment, luminance or luma is placed in the G data segments, a first colorimetric coordinate is placed in the R data segments, and a second colorimetric coordinate is placed in the B data segments. Although the example in FIG. 24 shows a Y×y system mapping, System 4 is operable to be used with a plurality of data formats (e.g., Yu′v′).

FIG. 25 illustrates one embodiment of Yxy inserted into a CTA 861 stream. Although the example in FIG. 25 shows a Y×y system mapping, System 4 is operable to be used with a plurality of data formats.

FIG. 26 illustrates one embodiment of a Yxy decode with an EOTF. In one embodiment, a non-linear function is applied to the luminance to create a luma. The non-linear function is not applied to the two colorimetric coordinates. Although the example in FIG. 26 shows a Yxy decode, System 4 is operable to be used with a plurality of data formats.

FIG. 27 illustrates one embodiment of a Yxy decode without an EOTF. In one embodiment, data is sent linearly as luminance. A non-linear function (e.g., EOTF) is not applied to the luminance or the two colorimetric coordinates. Although the example in FIG. 27 shows a Yxy decode, System 4 is operable to be used with a plurality of data formats.

Advantageously, XYZ is used as the basis of ACES for cinematographers and allows for the use of colors outside of the ITU-R BT.709 and/or the P3 color spaces, encompassing all of the CIE color space. Colorists often work in XYZ, so there is widespread familiarity with XYZ. Further, XYZ is used for other standards (e.g., JPEG 2000, Digital Cinema Initiatives (DCI)), which could be easily adapted for System 4. Additionally, most color spaces use XYZ as the basis for conversion, so the conversions between XYZ and most color spaces are well understood and documented. Many professional displays also have XYZ option as a color reference function.

In one embodiment, the image data converter includes at least one look-up table (LUT). In one embodiment, the at least one look-up table maps out-of-gamut colors to zero. In one embodiment, the at least one look-up table maps out-of-gamut colors to a periphery of visible colors. In one embodiment, an out-of-gamut color is mapped to the periphery along a straight line between the out-of-gamut color in its original location and a white point of the system (e.g., D65). In one embodiment, the luminance and/or luma value is maintained, and only the colorimetric coordinates are affected by the mapping. In one embodiment, gamma transforms and/or scaling are added after mapping. In one embodiment, the mapping is used to convert Yxy to XYZ and back. Alternatively, the mapping is used to convert Y′xy to X′Y′Z′ and back. In one embodiment, a gamma function and/or a scaling is maintained throughout the conversion. As a non-limiting example, a 2.6 gamma function is used to scale x by 0.74 and y by 0.84. Alternatively, the gamma and/or the scaling are removed after conversion.

Transfer Functions

The system design minimizes limitations to use standard transfer functions for both encode and/or decode processes. Current practices used in standards include, but are not limited to, ITU-R BT.1886, ITU-R BT.2020, SMPTE ST274, SMPTE ST296, SMPTE ST2084, and ITU-R BT.2100. These standards are compatible with this system and require no modification.

Encoding and decoding multi-primary (e.g., 6P, RGBC) images is formatted into several different configurations to adapt to image transport frequency limitations. The highest quality transport is obtained by keeping all components as multi-primary (e.g., RGBCMY) components. This uses the highest sampling frequencies and requires the most signal bandwidth. An alternate method is to sum the image details in a luminance channel at full bandwidth and then send the color difference signals at half or quarter sampling (e.g., Y Cr Cb Cc Cy). This allows a similar image to pass through lower bandwidth transports.

An IPT system is a similar idea to the Y×y system with several exceptions. An IPT system or an IC_(T)C_(P) system is still an extension of XYZ and is operable to be derived from RGB and multiprimary (e.g., RGBCMY, RGBC) color coordinates. An IPT color description can be substituted within a 4:4:4 sampling structure, but XYZ has already been established and does not require the same level of calculations. For an IC_(T)C_(P) transport system, similar substitutions can be made. However, both substitution systems are limited in that a non-linear function (e.g., OOTF) is contained in all three components. Although the non-linear function can be removed for IPT or IC_(T)C_(P), the derivation is still based on a set of RGB primaries with a white point reference. In one embodiment, removing the non-linear function alters the bit depth noise and compressibility.

For transport, simple substitutions can be made using the foundation of what is described with transport of XYZ for the use of IPT in current systems as well as the current standards used for IC_(T)C_(P).

FIG. 28A illustrates one embodiment of an IPT 4:4:4 encode.

FIG. 28B illustrates one embodiment of an IPT 4:4:4 decode.

FIG. 29A illustrates one embodiment of an IC_(T)C_(P) 4:2:2 encode.

FIG. 29B illustrates one embodiment of an IC_(T)C_(P) 4:2:2 decode.

Transfer functions used in systems 1, 2, and 3 are generally framed around two basic implementations. For images displaying using a standard dynamic range, the transfer functions are defined within two standards. The OETF is defined in ITU-R BT.709-6, table 1, row 1.2. The inverse function, the EOTF, is defined in ITU-R BT.1886. For high dynamic range imaging, the perceptual quantizer (PQ) and hybrid log-gamma (HLG) curves are described in ITU-R BT.2100-2: 2018, table 4.

System 4 is operable to use any of the transfer functions, which can be applied to the Y component. However, to improve compatibility and to simplify conversion between standard transfer functions, a new method has been developed: a ½ gamma function. Advantageously, the ½ gamma function allows for a single calculation from the luminance (e.g., Y) component of the signal (e.g., Yxy signal) to the display. Advantageously, the ½ gamma function is designed for data efficiency, not as an optical transform function. In one embodiment, the ½ gamma function is used instead of a nonlinear function (e.g., OETF or EOTF). In one embodiment, signal input to the ½ gamma function is assumed to be linear and constrained between values of 0 and 1. In one embodiment, the ½ gamma function is optimized for 10-bit transport and/or 12-bit transport. Alternatively, the ½ gamma function is optimized for 14-bit transport and/or 16-bit transport. In an alternative embodiment, the ½ gamma function is optimized for 8-bit transport. A typical implementation applies an inverse of the ½ gamma function, which linearizes the signal. A conversion to a display gamut is then applied.

FIG. 103 illustrates one embodiment of a ½ gamma function.

In one embodiment, for a source n=√{square root over (T)} and for a display L=n². In another embodiment, a display gamma is calculated as L=n²/λ, where λ is a desired final EOTF. Advantageously, using the ½ gamma function with the display gamma combines the functions into a single step rather than utilizing a two-step conversion process. In one embodiment, at least one tone curve is applied after the ½ gamma function. The ½ gamma function advantageously provides ease to convert to and from linear values. Given that all color and tone mapping has to be done in the linear domain, having a simple to implement conversion is desirable and makes the conversion to and from linear values easier and simpler.

FIG. 104 illustrates a graph of maximum quantizing error using the ½ gamma function. The maximum quantizing error from an original 16-bit image (black trace) to a 10-bit (blue trace) signal is shown in the graph. In the embodiment shown in the graph, the maximum quantizing error is less than 0.1% (e.g., 0.0916%) for 16-bit to 10-bit conversion using the ½ gamma function. This does not include any camera log functions designed into a camera. The graph also shows the maximum quantizing error from the original 16-bit image to a 12-bit (red trace) signal and a 14-bit (green trace) signal.

While a ½ gamma is ideal for converting images with 16-bit (e.g., 16-bit float) values to 12-bit (e.g., 12-bit integer) values, for other data sets a ⅓ gamma provides equivalent performance in terms of peak signal-to-noise ratio (PSNR). For high dynamic range (HDR) content, which has a wider luminance dynamic range (e.g., up to 1000 cd/m²), the ⅓ gamma conversion from 16-bit float maintains the same performance as ½ gamma. In one embodiment, an equation for finding an optimum value of gamma is:

$\gamma = \frac{{lnteger}{\mspace{11mu}\;}{Bit}\mspace{14mu}{Depth}}{- {\log_{2}\left( {{Minimum}\mspace{14mu}{Float}\mspace{14mu}{Value}} \right)}}$

In one embodiment, the Minimum Float Value is based on the Institute of Electrical and Electronics Engineers (IEEE) Standard for Floating-Point Arithmetic (IEEE 754) (July 2019), which is incorporated herein by reference in its entirety. In one embodiment, the range of image values is normalized to between 0 and 1. The range of image values is preferably normalized to between 0 and 1 and then the gamma function is applied.

For example, for an HDR system (e.g., with a luminance dynamic range of 1000-4000 cd/m²), the above equation becomes:

$\gamma = \frac{{lnteger}{\mspace{11mu}\;}{Bit}\mspace{14mu}{Depth}}{{- {\log_{2}\left( {{Minimum}\mspace{14mu}{Float}\mspace{14mu}{Value}} \right)}} - {\log_{2}\left( {{Peak}\mspace{14mu}{HDR}\mspace{14mu}{value}} \right)}}$

FIG. 108 illustrates one embodiment of a ⅓ gamma function.

Encoder and Decoder

In one embodiment, the multi-primary system includes an encoder operable to accept image data input (e.g., RAW, SDI, HDMI, DisplayPort, ethernet). In one embodiment, the image data input is from a camera, a computer, a processor, a flash memory card, a network (e.g., local area network (LAN)), or any other file storage or transfer medium operable to provide image data input. The encoder is operable to send processed image data (e.g., Yxy, XYZ, Yu′v′) to a decoder (e.g., via wired or wireless communication). The decoder is operable to send formatted image data (e.g., SDI, HDMI, Ethernet, DisplayPort, Yxy, XYZ, Yu′v′, legacy RGB, multi-primary data (e.g., RGBC, RGBCMY, etc.)) to at least one viewing device (e.g., display, monitor, projector) for display (e.g., via wired or wireless communication). In one embodiment, the decoder is operable to send formatted image data to at least two viewing devices simultaneously. In one embodiment, two or more of the at least two viewing devices use different color spaces and/or formats. In one example, the decoder sends formatted image data to a first viewing device in HDMI and a second viewing device in SDI. In another example, the decoder sends formatted image data as multi-primary (e.g., RGBCMY, RGBC) to a first viewing device and as legacy RGB (e.g., Rec. 709) to a second viewing device. In one embodiment, the Ethernet formatted image data is compatible with SMPTE ST2022. Additionally or alternatively, the Ethernet formatted image data is compatible with SMPTE ST2110 and/or any internet protocol (IP)-based transport protocol for image data.

The encoder and the decoder preferably include at least one processor. By way of example, and not limitation, the at least one processor is be a general-purpose microprocessor (e.g., a central processing unit (CPU)), a graphics processing unit (GPU), a microcontroller, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated or transistor logic, discrete hardware components, or any other suitable entity or combinations thereof that can perform calculations, process instructions for execution, and/or other manipulations of information. In one embodiment, one or more of the at least one processor is operable to run predefined programs stored in at least one memory of the encoder and/or the decoder.

The encoder and/or the decoder include hardware, firmware, and/or software. In one embodiment, the encoder and/or the decoder is operable to be inserted into third party software (e.g., via a dynamic-link library (DLL)). In one embodiment, functionality and/or features of the encoder and/or the decoder are combined for efficiency.

FIG. 105 illustrates one embodiment of an encoder. The encoder includes at least one encoder input (e.g., SDI, HDMI, SMPTE ST2110, SMPTE ST2022, DisplayPort, fiber, ethernet) and at least one encoder output (e.g., SDI, HDMI, SMPTE ST2110, SMPTE ST2022, Yxy SDI, Yxy HDMI, Yu′v′ SDI, Yu′v′ HDMI, DisplayPort, fiber, ethernet). The encoder preferably includes an encoder operations programming port operable to provide updates to firmware and/or software on the encoder. For example, the encoder operations programming port is operable to update library functions, internal formatting, camera DeBayer pattern algorithms, and/or look-up tables in the encoder. In one embodiment, the encoder includes an encoder configuration central processing unit (CPU) operable to interface with at least one encoder memory. The encoder further includes an encoder equalizer, at least one encoder serial to parallel (S/P) converter (e.g., SDI S/P converter, HDMI S/P, Ethernet S/P converter), at least one encoder flash card reader, at least one Ethernet port, a DeBayer engine, a linear converter, a scaler (e.g., 0-1), at least one custom encoder LUT, a color channel-to-XYZ converter (e.g., RGB in Rec. 709, P3, Rec. 2020; 6P; multi-primary; ACES; custom), an XYZ-to-Yxy converter, an XYZ-to-Yu′v′ converter, a gamma function (e.g., ½ gamma), an xy scaler, a u′v′ scaler, a sampling selector (e.g., 4:4:4, 4:2:2, 4:2:0), at least one encoder parallel to serial (P/S) converter (e.g., SDI P/S converter, HDMI P/S converter, Ethernet P/S converter), at least one encoder formatter (e.g., SDI formatter, HDMI formatter, Ethernet formatter), and/or a watermark engine. In one embodiment, the input data is operable to bypass any combination of processing stages and/or components in the encoder.

The at least one encoder input includes, but is not limited to, an SDI input, an HDMI input, a DisplayPort input, an ethernet input, and/or a SMPTE ST2110 input. The SDI input preferably follows a modified version of SMPTE ST352 payload identification (ID) standard. In one embodiment, the SDI input is SMPTE ST292, SMPTE ST425, and/or SMPTE ST2082. In one embodiment, a video signal from the SDI input is then sent to the encoder equalizer to compensate for cable type and length. In one embodiment, the HDMI input is decoded with a standard HDMI receiver circuit. In one embodiment, the HDMI input is converted to a parallel format. In one embodiment, the HDMI input is defined within the CTA 861 standard. In another embodiment, the at least one encoder input includes image data (e.g., RAW data) from a flash device. The configuration CPU identifies a format on the flash card and/or a file type, and has software operable to read the image data and make it available to the encoder.

In one embodiment, the encoder operations port is operable to connect to an encoder control system (e.g., via a micro universal serial bus (USB) or equivalent). In one embodiment, the encoder control system is operable to control the at least one encoder memory that holds tables for the DeBayer engine, load modifications to the linear converter and/or scaler, select the at least one input, loads a table for the at least one custom encoder LUT, bypass one or more of the at least one custom encoder LUT, bypass the DeBayer engine, add or modify conversion tables for the RGB to XYZ converter, modify the gamma function (e.g., a ½ gamma function), turn the watermark engine on or off, modify a digital watermark for the watermark engine, and/or perform functions for the flash memory player (e.g., play, stop, forward, fast forward, rewind, fast rewind, frame selection).

In one embodiment, the at least one S/P converter is up to n bit for improved processing efficiency. The at least one S/P converter preferably formats the processed image data so that the encoder and/or the decoder is operable to use parallel processing. Advantageously, parallel processing keeps processing fast and minimizes latency.

The at least one encoder formatter is operable to organize the serial stream as a proper format. In a preferred embodiment, the encoder includes a corresponding encoder formatter for each of the at least one encoder output. For example, if the encoder includes at least one HDMI output in the at least one encoder output, the encoder also includes at least one HDMI formatter in the at least one encoder formatter; if the encoder includes at least one SDI output in the at least one encoder output, the encoder also includes at least one SDI formatter in the at least one encoder formatter; if the encoder includes at least one Ethernet output in the at least one encoder output, the encoder also includes at least one Ethernet formatter in the at least one encoder formatter; and so forth.

There is an advantage of inputting a RAW camera image to take advantage of the extended dynamic range and wider color gamut versus using a standard video input. In one embodiment, the DeBayer engine is operable to convert RAW image data into a raster image. In one embodiment, the raster image is a 3-channel image (e.g., RGB). In one embodiment, the DeBayer engine is bypassed for data that is not in a RAW image format. In one embodiment, the DeBayer engine is configured to accommodate at least three primaries (e.g., 3, 4, 5, 6, 7, 8, etc.) in the Bayer or stripe pattern. To handle all of the different DeBayer options, the operations programming port is operable to load a file with code required to adapt a specific Bayer pattern. For images that are not RAW, a bypass path is provided and switched to and from using the encoder configuration CPU. In one embodiment, the encoder is operable to recognize the image data format and select the correct path automatically. Alternatively, the image data format is included in metadata.

The encoder configuration CPU is operable to recognize an input nonlinearity value and provide an inverse value to the linear converter to linearize the image data. The scaler is operable to map out of gamut values into in gamut values.

In one embodiment, the at least one custom encoder LUT is operable to transform an input (e.g., a standard from a manufacturer) to XYZ, Yxy, or Yu′v′. Examples of the input include, but are not limited to, RED Log 3G10, ARRI log C, ACEScc, SONY S-Log, CANON Log, PANASONIC V Log, PANAVISION Panalog, and/or BLACK MAGIC CinemaDNG. In one embodiment, the at least one custom encoder LUT is operable to transform the input to an output according to artistic needs. In one embodiment, the encoder does not include the color channel-to-XYZ converter or the XYZ-to-Yxy converter, as this functionality is incorporated into the at least one custom encoder LUT. In one embodiment, the at least one custom encoder LUT is a 65-cube look-up table. The at least one custom encoder LUT is preferably compatible with ACES Common LUT Format (CLF)—A Common File Format for Look-Up Tables S-2014-006, which was published Jul. 22, 2021 and which is incorporated herein by reference in its entirety. In one embodiment, the at least one custom encoder LUT is a multi-column LUT. The at least one custom encoder LUT is preferably operable to be loaded through the operations programming port. If no LUT is required, the encoder configuration CPU is operable to bypass the at least one custom encoder LUT.

In one embodiment, RGB or multi-primary (e.g., RGBCMY, RGBC) data is converted into XYZ data using the color channel-to-XYZ converter. In a preferred embodiment, a white point value for the original video data (e.g., RGB, RGBCMY) is stored in one or more of the at least one encoder memory. The encoder configuration CPU is operable to provide an adaption calculation using the white point value. The XYZ-to-Yxy converter is operable to convert XYZ data to Yxy data. Advantageously, the Y×y image data is segmented into a luminance value and a set of colorimetric values, the relationship between Y and x,y is operable to be manipulated to use lower data rates. Similarly, the XYZ-to-Yu′v′ converter is operable to convert XYZ data to Yu′v′ data, and the conversion is operable to be manipulated to use lower data rates. Any system with a luminance value and a set of colorimetric values is compatible with the present invention. The configuration CPU is operable to set the sample selector to fit one or more of the at least one encoder output. In one embodiment, the sampling selector sets a sampling structure (e.g., 4:4:4, 4:2:2, 4:2:0, 4:1:1). The sampling selector is preferably controlled by the encoder configuration CPU. In a preferred embodiment, the sampling selector also places each component in the correct serial data position as shown in Table 8.

TABLE 8 4:4:4 4:2:2, 4:2:0, or 4:1:1 Y G Y x R C_(R) y B C_(B)

The watermark engine is operable to modify an image from an original image to include a digital watermark. In one embodiment, the digital watermark is outside of the ITU-R BT.2020 color gamut. In one embodiment, the digital watermark is compressed, collapsed, and/or mapped to an edge of the smaller color gamut such that it is not visible and/or not detectable when displayed on a viewing device with a smaller color gamut than ITU-R BT.2020. In another embodiment, the digital watermark is not visible and/or not detectable when displayed on a viewing device with an ITU-R BT.2020 color gamut. In one embodiment, the digital watermark is a watermark image (e.g., logo), alphanumeric text (e.g., unique identification code), and/or a modification of pixels. In one embodiment, the digital watermark is invisible to the naked eye. In a preferred embodiment, the digital watermark is perceptible when decoded by an algorithm. In one embodiment, the algorithm uses an encryption key to decode the digital watermark. In another embodiment, the digital watermark is visible in a non-obtrusive manner (e.g., at the bottom right of the screen). The digital watermark is preferably detectable after size compression, scaling, cropping, and/or screenshots. In yet another embodiment, the digital watermark is an imperceptible change in sound and/or video. In one embodiment, the digital watermark is a pattern (e.g., a random pattern, a fixed pattern) using a luminance difference (e.g., 1 bit luminance difference). In one embodiment, the pattern is operable to change at each frame. The digital watermark is a dynamic digital watermark and/or a static digital watermark. In one embodiment, the dynamic digital watermark works as a full frame rate or a partial frame rate (e.g., half frame rate). The watermark engine is operable to accept commands from the encoder configuration CPU.

In an alternative embodiment, the at least one encoder input already includes a digital watermark when input to the encoder. In one embodiment, a camera includes the digital watermark on an image signal that is input to the encoder as the at least one encoder input.

The at least one encoder output includes, but is not limited to SDI, HDMI, DisplayPort, and/or ethernet. In one embodiment, at least one encoder formatter formats the image data to produce the at least one encoder output. The at least one encoder formatter includes, but is not limited to, an SDI formatter, an SMPTE ST2110, and/or an HDMI formatter. The SDI formatter formats the serial video data into an SDI package as a Yxy output. The SMPTE ST2110 formatter formats the serial video data into an ethernet package as a Yxy output. The HDMI formatter formats the serial video data into an HDMI package as a Yxy output.

FIG. 106 illustrates one embodiment of a decoder. The decoder includes at least one decoder input (e.g., SDI, HDMI, Ethernet, Yxy SDI, Yxy HDMI, Yxy Ethernet, DisplayPort, fiber) and at least one decoder output (e.g., Yxy SDI, at least one SDI, X′Y′Z′, HDMI, Ethernet, DisplayPort, fiber). In one embodiment, the decoder includes a decoder configuration central processing unit (CPU) operable to interface with at least one decoder memory. The decoder preferably includes a decoder operations programming port operable to provide updates to firmware and/or software on the decoder. The decoder further includes a decoder equalizer, at least one decoder serial to parallel (S/P) converter (e.g., SDI S/P converter, HDMI S/P converter, Ethernet S/P converter), a watermark detection engine, a watermark subtraction engine, a gamma-to-linear converter (e.g., ½ gamma-to-linear converter), an xy de-scaler, a u′v′ de-scaler, at least one sampling converter (e.g., 4:2:2 or 4:2:0 to 4:4:4 converter), at least one Yxy-to-XYZ converter, at least one Yu′v′-to-XYZ converter, a gamma library (e.g., linear, 2.2, 2.35, 2.4, 2.6, HLG, PQ, custom), an XYZ-to-color channel library (e.g., RGB (e.g., Rec. 709, P3, Rec. 2020); multi-primary data), a color channel-to-YUV library (e.g., RGB (e.g., Rec. 709, P3, Rec. 2020); multi-primary data), at least one sample selector, at least one transfer function, at least one custom decoder LUT, at least one decoder parallel to serial (P/S) converter (e.g., SDI X′Y′Z′, at least one SDI, HDMI), and/or at least one decoder formatter (e.g., SDI X′Y′Z′ formatter, SDI RGB formatter, SDI CMY formatter, HDMI formatter). In one embodiment, X′Y′Z′ output includes a non-linear function (e.g., ½ gamma) applied to XYZ data. In one embodiment, the processed image data is operable to bypass any combination of processing stages and/or components in the decoder.

In one embodiment, the decoder operations port is operable to connect to a decoder control system (e.g., via a micro universal serial bus (USB) or equivalent). In one embodiment, the decoder control system is operable to select the at least one decoder input, perform functions for the flash memory player (e.g., play, stop, forward, fast forward, rewind, fast rewind, frame selection), turn watermark detection on or off, add or modify the gamma library and/or look-up table selection, add or modify the XYZ-to-RGB library and/or look-up table selection, load data to the at least one custom decoder LUT, select bypass of one or more of the custom decoder LUT, and/or modify the Ethernet SDP. The gamma library preferably takes linear data and applies at least one non-linear function to the linear data. The at least non-linear function includes, but is not limited to, at least one standard gamma (e.g., those used in standard dynamic range (SDR) and high definition range (HDR) formats) and/or at least one custom gamma.

In one embodiment, the output of the gamma library is fed to the XYZ-to-RGB library, where tables are included to map the XYZ data to a standard RGB or YCbCr output format. In another embodiment, the output of the gamma library bypasses the XYZ-to-RGB library. This bypass leaves an output of XYZ data with a gamma applied. The selection of the XYZ-to-RGB library or bypass is determined by the configuration CPU. If the output format selected is YCbCr, then the XYZ-to-RGB library flags which sampling method is desired and provides that selection to the sampling selector. The sampling selector then formats the YCbCr data to a 4:2:2, 4:2:0, or 4:1:1 sampling structure.

In one embodiment, an input to the decoder does not include full pixel sampling (e.g., 4:2:2, 4:2:0, 4:1:1). The at least one sampling converter is operable to take subsampled images and convert the subsampled images to full 4:4:4 sampling. In one embodiment, the 4:4:4 Y×y image data is then converted to XYZ using the at least one Yxy-to-XYZ converter. In another embodiment, the 4:4:4 Yu′v′ image data is then converted to XYZ using the Yu′v′ using the at least one Yu′v′-to-XYZ converter. Image data is then converted from a parallel form to a serial stream.

In one embodiment, the at least one SDI output includes more than one SDI output. Advantageously, this allows for output over multiple links (e.g., System 3). In one embodiment, the at least one SDI output includes a first SDI output and a second SDI output. In one embodiment, the first SDI output is used to transport a first set of color channel data (e.g., RGB) and the second SDI output is used to transport a second set of color channel data (e.g., CMY).

The watermark detection engine detects the digital watermark. In one embodiment, a pattern of the digital watermark is loaded to the decoder using the operations programming port. In one embodiment, the decoder configuration CPU is operable to turn the watermark detection engine on and off. The watermark subtraction engine removes the digital watermark from image data before formatting for display on the at least one viewing device. In one embodiment, the decoder configuration CPU is operable to allow bypass of the watermark subtraction engine, which will leave the digital watermark on an output image. In a preferred embodiment, the decoder requires the digital watermark in the processed image data sent from the encoder to provide the at least one decoder output. Thus, the decoder does not send color channel data to the at least one viewing device if the digital watermark is not present in the processed image data. In an alternate embodiment, the decoder is operable to provide the at least one decoder output without the digital watermark in the processed image data sent from the encoder. If the digital watermark is not present in the processed image data, an image displayed on the at least one viewing device preferably includes a visible watermark.

In one embodiment, output from the watermark subtraction process includes luminance data including a non-linearity (e.g., ½ gamma). Non-linear luminance data (i.e., luma) is converted back to a linear image using the gamma-to-linear converter.

In one embodiment, the at least one custom decoder LUT includes a 9-column LUT. In one embodiment, the 9-column LUT includes 3 columns for a legacy RGB output (e.g., Rec. 709, Rec. 2020, P3) and 6 columns for a 6P multi-primary display (e.g., RGBCMY). Other numbers of columns (e.g., 7 columns) and alternative multi-primary displays (e.g., RGBC) are compatible with the present invention. In one embodiment, the at least one custom decoder LUT (e.g., the 9-column LUT) is operable to produce output values using tetrahedral interpolation. Advantageously, tetrahedral interpolation uses a smaller volume of color space to determine the output values, resulting in more accurate color channel data. In one embodiment, each of the tetrahedrons used in the tetrahedral interpolation includes a neutral diagonal. Advantageously, this embodiment works even with having less than 6 color channels. For example, a 4P output (e.g., RGBC) or a 5P output (e.g., RGBCY) using an FPGA is operable to be produced using tetrahedral interpolation. Further, this embodiment allows for an encoder to produce legacy RGB output in addition to multi-primary output. In an alternative embodiment, the at least one custom decoder LUT is operable to produce output value using cubic interpolation. The at least one custom decoder LUT is preferably operable to accept linear XYZ data. In one embodiment, the at least one custom decoder LUT is a multi-column LUT. The at least one custom decoder LUT is preferably operable to be loaded through the operations programming port. If no LUT is required, the decoder configuration CPU is operable to bypass the at least one custom decoder LUT.

In one embodiment, the at least one custom decoder LUT is operable to be used for streamlined HDMI transport. In one embodiment, the at least one custom decoder LUT is a 3D LUT. In one embodiment, the at least one custom decoder LUT is operable to take in a 3-column input (e.g., RGB, XYZ) and produce an output of greater than three columns (e.g., RGBC, RGBCY, RGBCMY). Advantageously, this system only requires 3 channels of data as the input to the at least one custom decoder LUT. In one embodiment, the at least one custom decoder LUT applies a gamma function and/or a curve to produce a linear output. In another embodiment, the at least one custom decoder LUT is a trimming LUT.

The at least one decoder formatter is operable to organize a serial stream as a proper format for the at least one output. In a preferred embodiment, the decoder includes a corresponding decoder formatter for each of the at least one decoder output. For example, if the decoder includes at least one HDMI output in the at least one decoder output, the decoder also includes at least one HDMI formatter in the at least one decoder formatter; if the decoder includes at least one SDI output in the at least one decoder output, the decoder also includes at least one SDI formatter in the at least one decoder formatter; if the decoder includes at least one Ethernet output in the at least one decoder output, the decoder also includes at least one Ethernet formatter in the at least one decoder formatter; and so forth.

The encoder and/or the decoder are operable to generate, insert, and/or recover metadata related to an image signal. The metadata includes, but is not limited to, a color space (e.g., 6P-B, 6P-C), an image transfer function (e.g., gamma, PQ, HLG, ½ gamma), a peak white value, and/or a signal format (e.g., RGB, Yxy, multi-primary (e.g., RGBCMY, RGBC)). In one embodiment, the metadata is inserted into SDI or ST2110 using ancillary (ANC) data packets. In another embodiment, the metadata is inserted using Vendor Specific InfoFrame (VSIF) data as part of the CTA 861 standard. In one embodiment, the metadata is compatible with SMPTE ST 2110-10:2017, SMPTE ST 2110-20:2017, SMPTE ST 2110-40:2018, SMPTE ST 352:2013, and/or SMPTE ST 352:2011, each of which is incorporated herein by reference in its entirety.

Additional details about the multi-primary system and the display are included in U.S. application Ser. Nos. 17/180,441 and 17/209,959, and U.S. Patent Publication Nos. 20210027693, 20210020094, 20210035487, and 20210043127, each of which is incorporated herein by reference in its entirety.

Display Engine

In one embodiment, the present invention provides a display engine operable to interact with a graphics processing unit (GPU) and provide Yxy, XYZ, YUV, Yu′v′, RGB, YCrCb, and/or IC_(T)C_(P) configured outputs. In one embodiment, the display engine and the GPU are on a video card. Alternatively, the display engine and the GPU are embedded on a motherboard or a central processing unit (CPU) die. The display engine and the GPU are preferably included in and/or connected to at least one viewing device (e.g., display, video game console, smartphone, etc.). Additional information related to GPUs are disclosed in U.S. Pat. Nos. 9,098,323; 9,235,512; 9,263,000; 9,318,073; 9,442,706; 9,477,437; 9,494,994; 9,535,815; 9,740,611; 9,779,473; 9,805,440; 9,880,851; 9,971,959; 9,978,343; 10,032,244; 10,043,232; 10,114,446; 10,185,386; 10,191,759; 10,229,471; 10,324,693; 10,331,590; 10,460,417; 10,515,611; 10,521,874; 10,559,057; 10,580,105; 10,593,011; 10,600,141; 10,628,909; 10,705,846; 10,713,059; 10,769,746; 10,839,476; 10,853,904; 10,867,362; 10,922,779; 10,923,082; 10,963,299; and 10,970,805 and U.S. Patent Publication Nos. 20140270364, 20150145871, 20160180487, 20160350245, 20170178275, 20170371694, 20180121386, 20180314932, 20190034316, 20190213706, 20200098082, 20200183734, 20200279348, 20200294183, 20200301708, 20200310522, 20200379864, and 20210049030, each of which is incorporated herein by reference in its entirety.

In one embodiment, the GPU includes a render engine. In one embodiment, the render engine includes at least one render pipeline (RP), a programmable pixel shader, a programmable vector shader, a vector array processor, a curvature engine, and/or a memory cache. The render engine is operable to interact with a memory controller interface, a command CPU, a host bus (e.g., peripheral component interconnect (PCI), PCI Express (PCIe), accelerated graphics port (AGP)), and/or an adaptive full frame anti-aliasing. The memory controller interface is operable to interact with a display memory (e.g., double data rate (DDR) memory), a pixel cache, the command CPU, the host bus, and a display engine. The command CPU is operable to exchange data with the display engine.

FIG. 107 illustrates one embodiment of a display engine operable to interact with a graphics processing unit (GPU) according to the present invention. In a preferred embodiment, the display engine operable to interact with the GPU is included on a video card. The video card is operable to interface with a computer. In a preferred embodiment, the video card is operable to be inserted into a connector (e.g., PCIe connector, PCI connector, accelerated graphics port (AGP) connector, etc.) located within a computer. The computer includes a command central processing unit (CPU). The command CPU is dedicated to communication between the video card and the computer core. The command CPU is preferably operable to input instructions from an application programming interface (API). The command CPU is further operable to distribute appropriate commands to components in the video card. The video card further includes a memory controller interface. The memory controller interface is preferably a bus including hardware operable to manage which data is allowed on the bus and where the data is routed.

In one embodiment, the video card includes a plurality of video cards linked together to allow scaling of graphics processing. In one embodiment, the plurality of video cards is linked with a PCIe connector. Other connectors are compatible with the plurality of video cards. In one embodiment, each of the plurality of video cards has the same technical specifications. In one embodiment, the API includes methods for scaling the graphics processing, and the command CPU is operable to distribute the graphics processing across the plurality of video cards. The command CPU is operable to scale up the graphics processing as well as scale down the graphics processing based on processing demands and/or power demands of the system.

The display engine is operable to take rendered data from the GPU and convert the rendered data to a format operable to be displayed on at least one viewing device. The display engine includes a raster scaler, at least one video display controller (e.g., XYZ video display controller, RGB video display controller, IC_(T)C_(P) video display controller), a color channel-to-XYZ converter, a linear converter, a scaler and/or limiter, a multi-column LUT with at least three columns (e.g., three-dimensional (3D) LUT (e.g., 129³ LUT)), an XYZ-to-Yxy converter, a non-linear function and/or tone curve applicator (e.g., ½ gamma), a sampling selector, a video bus, and/or at least one output formatter and/or encoder (e.g., ST 2082, ST 2110, DisplayPort, HDMI). In one embodiment, the color channel-to-XYZ converter includes an RGB-to-XYZ converter. Additionally or alternatively, the color channel-to-XYZ converter includes an IC_(T)C_(P)-to-XYZ converter and/or an ACES-to-XYZ converter. The video bus is operable to receive input from a graphics display controller and/or at least one input device (e.g., a cursor, a mouse, a joystick, a keyboard, a videogame controller, etc.).

The video card is operable to connect through any number of lanes provided by hardware on the computer. The video card is operable to communicate through a communication interface including, but not limited to, a PCIe Physical Layer (PHY) interface. In one embodiment, the communication interface is an API supported by the computer (e.g., OpenGL, Direct3D, OpenCL, Vulkan). Image data in the form of vector data or bitmap data is output from the communication interface into the command CPU. The communication interface is operable to notify the command CPU when image data is available. The command CPU opens the bus bidirectional gate and instructs the memory controller interface to transmit the image data to a double data rate (DDR) memory. The memory controller interface is operable to open a path from the DDR memory to allow the image data to pass to the GPU for rendering. After rendering, the image data is channeled back to the DDR for storage pending output processing by the display engine.

After the image data is rendered and stored in the DDR memory, the command CPU instructs the memory controller interface to allow rendered image data to load into the raster scaler. The command CPU loads the raster scaler with framing information. The framing information includes, but is not limited to, a start of file (SOF) identifier, an end of file (EOF) identifier, a pixel count, a pixel order, multi-primary data (e.g., RGBCMY data), and/or a frame rate. In one embodiment, the framing information includes HDMI and/or DisplayPort (e.g., CTA 861 format) information. In one embodiment, Extended Display Identification Data (EDID) is operable to override specifications in the API. The raster scaler provides output as image data formatted as a raster in the same format as the file which being read (e.g., RGB, XYZ, Yxy). In one embodiment, the output of the raster scaler is RGB data, XYZ data, or Yxy data. Alternatively, the output of the raster scaler is Yu′v′ data, IC_(T)C_(P) data, or ACES data.

In one embodiment, the output of the raster scaler is sent to a graphics display controller. In one embodiment, the graphics display controller is operable to provide display information for a graphical user interface (GUI). In one embodiment, the RGB video controller and the XYZ video controller block image data from entering the video bus. Raster data includes, but is not limited to, synchronization data, an SOF, an EOF, a frame rate, a pixel order, multi-primary data (e.g., RGBCMY data), and/or a pixel count. In one embodiment, the raster data is limited to an RGB output that is operable to be transmitted to the at least one output formatter and/or encoder.

For common video display, a separate path is included. The separate path is operable to provide outputs including, but not limited to, SMPTE SDI, Ethernet, DisplayPort, and/or HDMI to the at least one output formatter and/or encoder. The at least one video display controller (e.g., RGB video display controller) is operable to limit and/or optimize video data for streaming and/or compression. In one embodiment, the RGB video display controller and the XYZ video display controller block image data from entering the video bus.

In a preferred embodiment, image data is provided by the raster scaler in the format provided by the file being played (e.g., RGB, multi-primary (e.g., RGBCMY), XYZ, Yxy). In one embodiment, the raster scaler presets the XYZ video display controller as the format provided and contained within the raster size to be displayed. In one embodiment, non-linear information (e.g., OOTF) sent from the API through the command CPU is sent to the linear converter. The linear converter is operable to use the non-linear information. For example, if the image data was authored using an OETF, then an inverse of the OETF is operable to be used by the linear converter, or, if the image information already has an EOTF applied, the inverse of the EOTF is operable to be used by the linear converter. In one embodiment, the linear converter develops an EOTF map to linearize input data (e.g., when EOTF data is available). In one embodiment, the linear converter uses an EOTF when already available. After linear data is loaded and a summation process is developed, the XYZ video display controller passes the image data in its native format (e.g., RGB, multi-primary data (e.g., RGBCMY), XYZ, Yxy), but without a non-linearity applied to the luminance (e.g., Y) component. The color channel-to-XYZ converter is operable to accept a native format (e.g., RGB, multi-primary data (e.g., RGBCMY), XYZ, Yxy) and convert to an XYZ format. In one embodiment, the XYZ format includes at least one chromatic adaptation (e.g., D60 to D65). For RGB, the XYZ video display controller uses data supplied from the command CPU, which obtains color gamut and white point specifications from the API to convert to an XYZ output. For a multi-primary system, a corresponding matrix or a look-up table (LUT) is used to convert from the multi-primary system to XYZ. In one embodiment, the multi-primary system is RGBCMY (e.g., 6P-B, 6P-C, S6 Pa, S6Pb). For a Y×y system, the color channel-to-XYZ converter formats the Yxy data back to XYZ data. In another embodiment, the color channel-to-XYZ converter is bypassed. For example, the color channel-to-XYZ converter is bypassed if there is a requirement to stay within a multi-primary system. Additionally, the color channel-to-XYZ converter is bypassed for XYZ data.

In one embodiment, the input to the scaler and/or limiter is XYZ data or multi-primary data. In one embodiment, the multi-primary data includes, but is not limited to, RGBCMY (e.g., 6P-B, 6P-C, S6 Pa, S6Pb), RGBC, RG₁G₂B, RGBCW, RGBCY, RG₁G₂BW, RGBW_(R)W_(G)W_(B), or R₁R₂G₁G₂B₁B₂. Other multi-primary data formats are compatible with the present invention. The scaler and/or limiter is operable to map out of gamut values (e.g., negative values) to in gamut values (e.g., out of gamut values developed in the process to convert to XYZ). In one embodiment, the scaler and/or limiter uses a gamut mapping algorithm to map out of gamut values to in gamut values.

In one embodiment, the input to the scaler and/or limiter is multi-primary data and all channels are optimized to have values between 0 and 1. For example, if the input is RGBCMY data, all six channels are optimized to have values between 0 and 1. In one embodiment, the output of the scaler and/or limiter is operable to be placed into a three-dimensional (3-D) multi-column LUT. In one embodiment, the 3-D multi-column LUT includes one column for each channel. For example, if the output is RGBCMY data, the 3-D multi-column LUT includes six columns (i.e., one for each channel). Within the application feeding the API, each channel is operable to be selected to balance out the white point and/or shade the image toward one particular color channel. In one embodiment, the 3-D multi-column LUT is bypassed if the output of the scaler and/or limiter is XYZ data. The output of the 3-D multi-column LUT is sent to the XYZ-to-Yxy converter, where a simple summation process is used to make the conversion. In one embodiment, if the video data is RGBCMY, the XYZ-to-Yxy converter process is bypassed.

Because the image data is linear, any tone curve can be added to the luminance (e.g., Y). The advantage to the present invention using, e.g., Yxy data or Yu′v′ data, is that only the luminance needs a tone curve modification. L*a*b* has a ⅓ gamma applied to all three channels. IPT and IC_(T)C_(P) operate with a gamma in all three channels. The tone curve is operable to be added to the luminance (e.g., Y) only, with the colorimetric coordinates (e.g., x and y channels, u′ and v′ channels) remaining linear. The tone curve is operable to be anything (e.g., a non-linear function), including standard values currently used. In one embodiment, the tone curve is an EOTF (e.g., those described for television and/or digital cinema). Additionally or alternatively, the tone curve includes HDR modifications.

In one embodiment, the output is handled through this process as three to six individual components (e.g., three components for Yxy or XYZ, six components for RGBCMY, etc.). Alternative number of primaries and components are compatible with the present invention. However, in some serial formats, this level of payload is too large. In one embodiment, the sampling selector sets a sampling structure (e.g., 4:4:4, 4:2:2, 4:2:0, 4:1:1). In one embodiment, the sampling selector is operable to subsample processed image data. The sampling selector is preferably controlled by the command CPU. In one embodiment, the command CPU gets its information from the API and/or the display EDID. In a preferred embodiment, the sampling selector also places each component in the correct serial data position as shown in Table 8 (supra).

The output of the sampling select is fed to the main video bus, which integrates SOF and EOF information into the image data. It then distributes this to the at least one output formatter and/or encoder. In one embodiment, the output is RGBCMY. In one embodiment, the RGBCMY output is configured as 4:4:4:4:4:4 data. The format to the at least one viewing device includes, but is not limited to, SMPTE ST2082 (e.g., 3, 6, and 12G serial data output), SMPTE ST2110 (e.g., to move through ethernet), and/or CTA 861 (e.g., DisplayPort, HDMI). The video card preferably has the appropriate connectors (e.g., DisplayPort, HDMI) for distribution through any external system (e.g., computer) and connection to at least one viewing device (e.g., monitor, television, etc.). The at least one viewing device includes, but is not limited to, a smartphone, a tablet, a laptop screen, a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a miniLED display, a microLED display, a liquid crystal display (LCD), a quantum dot display, a quantum nano emitting diode (QNED) device, a personal gaming device, a virtual reality (VR) device and/or an augmented reality (AR) device, an LED wall, a wearable display, and at least one projector. In one embodiment, the at least one viewing device is a single viewing device.

Six-Primary Color Encode Using a 4:4:4 Sampling Method

FIG. 30 illustrates one embodiment of a six-primary color system encode using a 4:4:4 sampling method.

Subjective testing during the development and implementation of the current digital cinema system (DCI Version 1.2) showed that perceptible quantizing artifacts were not noticeable with system bit resolutions higher than 11 bits. Current serial digital transport systems support 12 bits. Remapping six color components to a 12-bit stream is accomplished by lowering the bit limit to 11 bits (values 0 to 2047) for 12-bit serial systems or 9 bits (values 0 to 512) for 10-bit serial systems. This process is accomplished by processing multi-primary (e.g., RGBCMY) video information through a standard Optical Electronic Transfer Function (OETF) (e.g., ITU-R BT.709-6), digitizing the video information as four samples per pixel, and quantizing the video information as 11-bit or 9-bit.

In another embodiment, the multi-primary (e.g., RGBCMY) video information is processed through a standard Optical Optical Transfer Function (OOTF). In yet another embodiment, the multi-primary (e.g., RGBCMY) video information is processed through a Transfer Function (TF) other than OETF or OOTF. TFs consist of two components, a Modulation Transfer Function (MTF) and a Phase Transfer Function (PTF). The MTF is a measure of the ability of an optical system to transfer various levels of detail from object to image. In one embodiment, performance is measured in terms of contrast (degrees of gray), or of modulation, produced for a perfect source of that detail level. The PTF is a measure of the relative phase in the image(s) as a function of frequency. A relative phase change of 180°, for example, indicates that black and white in the image are reversed. This phenomenon occurs when the TF becomes negative.

There are several methods for measuring MTF. In one embodiment, MTF is measured using discrete frequency generation. In one embodiment, MTF is measured using continuous frequency generation. In another embodiment, MTF is measured using image scanning. In another embodiment, MTF is measured using waveform analysis.

In one embodiment, the six-primary color system is for a 12-bit serial system. Current practices normally set black at bit value 0 and white at bit value 4095 for 12-bit video. In order to package six colors into the existing three-serial streams, the bit defining black is moved to bit value 2048. Thus, the new encode has RGB values starting at bit value 2048 for black and bit value 4095 for white and non-RGB primary (e.g., CMY) values starting at bit value 2047 for black and bit value 0 as white. In another embodiment, the six-primary color system is for a 10-bit serial system.

FIG. 31 illustrates one embodiment for a method to package six channels of primary information into the three standard primary channels used in current serial video standards by modifying bit numbers for a 12-bit SDI and a 10-bit SDI. FIG. 32 illustrates a simplified diagram estimating perceived viewer sensation as code values define each hue angle. TABLE 9 and TABLE 10 list bit assignments for computer, production, and broadcast for a 12-bit system and a 10-bit system, respectively. In one embodiment, bit assignments for “Computer” refers to bit assignments compatible with CTA 861-G, November 2016, which is incorporated herein by reference in its entirety. In one embodiment, bit assignments for “Production” and/or “Broadcast” refer to bit assignments compatible with SMPTE ST 2082-0 (2016), SMPTE ST 2082-1 (2015), SMPTE ST 2082-10 (2015), SMPTE ST 2082-11 (2016), SMPTE ST 2082-12 (2016), SMPTE ST 2110-10 (2017), SMPTE ST 2110-20 (2017), SMPTE ST 2110-21 (2017), SMPTE ST 2110-30 (2017), SMPTE ST 2110-31 (2018), and/or SMPTE ST 2110-40 (2018), each of which is incorporated herein by reference in its entirety.

TABLE 9 12-Bit Assignments Computer Production Broadcast RGB CMY RGB CMY RGB CMY Peak Brightness 4095 0 4076 16 3839 256 Minimum Brightness 2048 2047 2052 2032 2304 1792

TABLE 10 10-Bit Assignments Computer Production Broadcast RGB CMY RGB CMY RGB CMY Peak Brightness 1023 0 1019 4 940 64 Minimum Brightness 512 511 516 508 576 448

In one embodiment, the OETF process is defined in ITU-R BT.709-6, published in 2015, which is incorporated herein by reference in its entirety. In one embodiment, the OETF process is defined in ITU-R BT.709-5, published in 2002, which is incorporated herein by reference in its entirety. In another embodiment, the OETF process is defined in ITU-R BT.709-4, published in 2000, which is incorporated herein by reference in its entirety. In yet another embodiment, the OETF process is defined in ITU-R BT.709-3, published in 1998, which is incorporated herein by reference in its entirety. In yet another embodiment, the OETF process is defined in ITU-R BT.709-2, published in 1995, which is incorporated herein by reference in its entirety. In yet another embodiment, the OETF process is defined in ITU-R BT.709-1, published in 1993, which is incorporated herein by reference in its entirety.

In one embodiment, the encoder is a non-constant luminance encoder. In another embodiment, the encoder is a constant luminance encoder.

Six-Primary Color Packing/Stacking Using a 4:4:4 Sampling Method

FIG. 33 illustrates one embodiment for a method of stacking/encoding six-primary color information using a 4:4:4 video system. Image data must be assembled according the serial system used. This is not a conversion process, but instead is a packing/stacking process. In one embodiment, the packing/stacking process is for a six-primary color system using a 4:4:4 sampling method.

FIG. 34 illustrates one embodiment for a method of unstacking/decoding six-primary color information using a 4:4:4 video system. In one embodiment, the RGB channels and the non-RGB (e.g., CMY) channels are combined into one 12-bit word and sent to a standardized transport format. In one embodiment, the standardized transport format is SMPTE ST424 SDI. In one embodiment, the decode is for a non-constant luminance, six-primary color system. In another embodiment, the decode is for a constant luminance, six-primary color system. In yet another embodiment, an electronic optical transfer function (EOTF) (e.g., ITU-R BT.1886) coverts image data back to linear for display. In one embodiment, the EOTF is defined in ITU-R BT.1886 (2011), which is incorporated herein by reference in its entirety. FIG. 35 illustrates one embodiment of a 4:4:4 decoder.

System 2 uses sequential mapping to the standard transport format, so it includes a delay for the non-RGB (e.g., CMY) data. The non-RGB (e.g., CMY) data is recovered in the decoder by delaying the RGB data. Since there is no stacking process, the full bit level video can be transported. For displays that are using optical filtering, this RGB delay could be removed and the process of mapping image data to the correct filter could be eliminated by assuming this delay with placement of the optical filter and the use of sequential filter colors.

Two methods can be used based on the type of optical filter used. Since this system is operating on a horizontal pixel sequence, some vertical compensation is required and pixels are rectangular. This can be either as a line double repeat using the same multi-primary (e.g., RGBCMY) data to fill the following line as shown in FIG. 36, or could be separated as RGB on line one and non-RGB (e.g., CMY) on line two as shown in FIG. 37. The format shown in FIG. 37 allows for square pixels, but the non-RGB (e.g., CMY) components require a line delay for synchronization. Other patterns eliminating the white subpixel are also compatible with the present invention.

FIG. 38 illustrates an embodiment of the present invention for sending six primary colors to a standardized transport format using a 4:4:4 encoder according to System 2. Encoding is straight forward with a path for RGB sent directly to the transport format. RGB data is mapped to each even numbered data segment in the transport. Non-RGB (e.g., CMY) data is mapped to each odd numbered segment. Because different resolutions are used in all of the standardized transport formats, there must be identification for what they are so that the start of each horizontal line and horizontal pixel count can be identified to time the RGB/non-RGB (e.g., CMY) mapping to the transport. The identification is the same as currently used in each standardized transport function. TABLE 11, TABLE 12, TABLE 13, and TABLE 14 list 16-bit assignments, 12-bit assignments, 10-bit assignments, and 8-bit assignments, respectively. In one embodiment, “Computer” bit assignments refer to bit assignments compatible with CTA 861-G, November 2016, which is incorporated herein by reference in its entirety. In one embodiment, “Production” and/or “Broadcast” bit assignments refer to bit assignments compatible with SMPTE ST 2082-0 (2016), SMPTE ST 2082-1 (2015), SMPTE ST 2082-10 (2015), SMPTE ST 2082-11 (2016), SMPTE ST 2082-12 (2016), SMPTE ST 2110-10 (2017), SMPTE ST 2110-20 (2017), SMPTE ST 2110-21 (2017), SMPTE ST 2110-30 (2017), SMPTE ST 2110-31 (2018), and/or SMPTE ST 2110-40 (2018), each of which is incorporated herein by reference in its entirety.

TABLE 11 16-Bit Assignments Computer Production RGB CMY RGB CMY Peak Brightness 65536 65536 65216 65216 Minimum Brightness 0 0 256 256

TABLE 12 12-Bit Assignments Computer Production Broadcast RGB CMY RGB CMY RGB CMY Peak Brightness 4095 4095 4076 4076 3839 3839 Minimum Brightness 0 0 16 16 256 256

TABLE 13 10-Bit Assignments Computer Production Broadcast RGB CMY RGB CMY RGB CMY Peak Brightness 1023 1023 1019 1019 940 940 Minimum Brightness 0 0 4 4 64 64

TABLE 14 8-Bit Assignments Computer Production Broadcast RGB CMY RGB CMY RGB CMY Peak Brightness 255 255 254 254 235 235 Minimum Brightness 0 0 1 1 16 16

The decode adds a pixel delay to the RGB data to realign the channels to a common pixel timing. EOTF is applied and the output is sent to the next device in the system. Metadata based on the standardized transport format is used to identify the format and image resolution so that the unpacking from the transport can be synchronized. FIG. 39 shows one embodiment of a decoding with a pixel delay.

In one embodiment, the decoding is 4:4:4 decoding. With this method, the six-primary color decoder is in the signal path, where 11-bit values for RGB are arranged above bit value 2048, while non-RGB (e.g., CMY) levels are arranged below bit value 2047 as 11-bit. If the same data set is sent to a display and/or process that is not operable for six-primary color processing, the image data is assumed as black at bit value 0 as a full 12-bit word. Decoding begins by tapping image data prior to the unstacking process.

Six-Primary Color Encode Using a 4:2:2 Sampling Method

In one embodiment, the packing/stacking process is for a six-primary color system using a 4:2:2 sampling method. In order to fit the new six-primary color system into a lower bandwidth serial system, while maintaining backwards compatibility, the standard method of converting from six primaries (e.g., RGBCMY) to a luminance and a set of color difference signals requires the addition of at least one new image designator. In one embodiment, the encoding and/or decoding process is compatible with transport through SMPTE ST 292-0 (2011), SMPTE ST 292-1 (2011, 2012, and/or 2018), SMPTE ST 292-2 (2011), SMPTE ST 2022-1 (2007), SMPTE ST 2022-2 (2007), SMPTE ST 2022-3 (2010), SMPTE ST 2022-4 (2011), SMPTE ST 2022-5 (2012 and/or 2013), SMPTE ST 2022-6 (2012), SMPTE ST 2022-7 (2013), and/or and CTA 861-G (2106), each of which is incorporated herein by reference in its entirety.

In order for the system to package all of the image while supporting both six-primary and legacy displays, an electronic luminance component (Y) must be derived. The first component is: E_(Y) ₆ ′. For an RGBCMY system, it can be described as:

E_(Y₆)^(′) = 0.1063E_(Red)^(′) + 0.23195E_(Yellow)^(′) + 0.3576E_(Green)^(′) + 0.19685E_(Cyan)^(′) + 0.0361E_(Blue)^(′) + 0.0712E_(Magenta)^(′)

Critical to getting back to legacy display compatibility, value E_(−Y)′ is described as:

E_(−Y)^(′) = E_(Y₆)^(′) − (E_(Cyan)^(′) + E_(Yellow)^(′) + E_(Magenta)^(′))

In addition, at least two new color components are disclosed. These are designated as Cc and Cy components. The at least two new color components include a method to compensate for luminance and enable the system to function with older Y Cb Cr infrastructures. In one embodiment, adjustments are made to Cb and Cr in a Y Cb Cr infrastructure since the related level of luminance is operable for division over more components. These new components are as follows:

${E_{CR}^{\prime} = \frac{\left( {E_{R}^{\prime} - E_{Y_{6}}^{\prime}} \right)}{1.7874}},{E_{CB}^{\prime} = \frac{\left( {E_{B}^{\prime} - E_{Y_{6}}^{\prime}} \right)}{1.9278}},{E_{CC}^{\prime} = \frac{\left( {E_{C}^{\prime} - E_{Y_{6}}^{\prime}} \right)}{1.6063}},{E_{CY}^{\prime} = \frac{\left( {E_{Y}^{\prime} - E_{Y_{6}}^{\prime}} \right)}{1.5361}}$

Within such a system, it is not possible to define magenta as a wavelength. This is because the green vector in CIE 1976 passes into, and beyond, the CIE designated purple line. Magenta is a sum of blue and red. Thus, in one embodiment, magenta is resolved as a calculation, not as optical data. In one embodiment, both the camera side and the monitor side of the system use magenta filters. In this case, if magenta were defined as a wavelength, it would not land at the point described. Instead, magenta would appear as a very deep blue which would include a narrow bandwidth primary, resulting in metameric issues from using narrow spectral components. In one embodiment, magenta as an integer value is resolved using the following equation:

$M_{INT} = \left\lbrack \frac{\frac{B_{INT}}{2} + \frac{R_{INT}}{2}}{2} \right\rbrack$

The above equation assists in maintaining the fidelity of a magenta value while minimizing any metameric errors. This is advantageous over prior art, where magenta appears instead as a deep blue instead of the intended primary color value.

Six-Primary Non-Constant Luminance Encode Using a 4:2:2 Sampling Method

In one embodiment, the six-primary color system using a non-constant luminance encode for use with a 4:2:2 sampling method. In one embodiment, the encoding process and/or decoding process is compatible with transport through SMPTE ST 292-0 (2011), SMPTE ST 292-1 (2011, 2012, and/or 2018), SMPTE ST 292-2 (2011), SMPTE ST 2022-1 (2007), SMPTE ST 2022-2 (2007), SMPTE ST 2022-3 (2010), SMPTE ST 2022-4 (2011), SMPTE ST 2022-5 (2012 and/or 2013), SMPTE ST 2022-6 (2012), SMPTE ST 2022-7 (2013), and/or and CTA 861-G (2106), each of which is incorporated herein by reference in its entirety.

Current practices use a non-constant luminance path design, which is found in all the video systems currently deployed. FIG. 40 illustrates one embodiment of an encode process for 4:2:2 video for packaging five channels of information into the standard three-channel designs. For 4:2:2, a similar method to the 4:4:4 system is used to package five channels of information into the standard three-channel designs used in current serial video standards. FIG. 40 illustrates 12-bit SDI and 10-bit SDI encoding for a 4:2:2 system. TABLE 15 and TABLE 16 list bit assignments for a 12-bit and 10-bit system, respectively. In one embodiment, “Computer” bit assignments refer to bit assignments compatible with CTA 861-G, November 2016, which is incorporated herein by reference in its entirety. In one embodiment, “Production” and/or “Broadcast” bit assignments refer to bit assignments compatible with SMPTE ST 2082-0 (2016), SMPTE ST 2082-1 (2015), SMPTE ST 2082-10 (2015), SMPTE ST 2082-11 (2016), SMPTE ST 2082-12 (2016), SMPTE ST 2110-10 (2017), SMPTE ST 2110-20 (2017), SMPTE ST 2110-21 (2017), SMPTE ST 2110-30 (2017), SMPTE ST 2110-31 (2018), and/or SMPTE ST 2110-40 (2018), each of which is incorporated herein by reference in its entirety.

TABLE 15 12-Bit Assignments Computer Production Broadcast EY₆ EC_(R), EC_(B) EC_(c), EC_(Y) EY₆ EC_(R), EC_(B) EC_(c), EC_(Y) EY₆ EC_(R), EC_(B) EC_(c), EC_(Y) Peak 4095 4095 0 4076 4076 16 3839 3839 256 Brightness Minimum 0 2048 2047 16 2052 2032 256 2304 1792 Brightness

TABLE 16 10-Bit Assignments Computer Production Broadcast EY₆ EC_(R), EC_(B) EC_(c), EC_(Y) EY₆ EC_(R), EC_(B) EC_(c), EC_(Y) EY₆ EC_(R), EC_(B) EC_(c), EC_(Y) Peak 1023 1023 0 1019 1019 4 940 940 64 Brightness Minimum 0 512 511 4 516 508 64 576 448 Brightness

FIG. 41 illustrates one embodiment for a non-constant luminance encoding process for a six-primary color system. The design of this process is similar to the designs used in current RGB systems. Input video is sent to the Optical Electronic Transfer Function (OETF) process and then to the E_(Y) ₆ encoder. The output of this encoder includes all of the image detail information. In one embodiment, all of the image detail information is output as a monochrome image.

The output is then subtracted from E_(R)′, E_(B)′, E_(C)′, and E_(Y)′ to make the following color difference components:

E_(CR)^(′), E_(CB)^(′), E_(CC)^(′), E_(CY)^(′)

These components are then half sampled (x2) while E_(Y) ₆ ′ is fully sampled (x4).

FIG. 42 illustrates one embodiment of a packaging process for a six-primary color system. These components are then sent to the packing/stacking process. Components E_(CY-INT)′ and E_(CC-INT)′ are inverted so that bit 0 now defines peak luminance for the corresponding component. In one embodiment, this is the same packaging process performed with the 4:4:4 sampling method design, resulting in two 11-bit components combining into one 12-bit component.

Six-Primary Non-Constant Luminance Decode Using a 4:2:2 Sampling Method

FIG. 43 illustrates a 4:2:2 unstack process for a six-primary color system. In one embodiment, the image data is extracted from the serial format through the normal processes as defined by the serial data format standard. In another embodiment, the serial data format standard uses a 4:2:2 sampling structure. In yet another embodiment, the serial data format standard is SMPTE ST292. The color difference components are separated and formatted back to valid 11-bit data. Components E_(CY-INT)′ and E_(CC-INT)′ are inverted so that bit value 2047 defines peak color luminance.

FIG. 44 illustrates one embodiment of a process to inversely quantize each individual color and pass the data through an electronic optical function transfer (EOTF) in a non-constant luminance system. The individual color components, as well as E_(Y) ₆ _(-INT)′, are inversely quantized and summed to breakout each individual color. Magenta is then calculated and E_(Y) ₆ _(-INT)′ is combined with these colors to resolve green. These calculations then go back through an Electronic Optical Transfer Function (EOTF) process to output the six-primary color system.

In one embodiment, the decoding is 4:2:2 decoding. This decode follows the same principles as the 4:4:4 decoder. However, in 4:2:2 decoding, a luminance channel is used instead of discrete color channels. Here, image data is still taken prior to unstack from the E_(CB-INT)′+E_(CY-INT)′ and E_(CR-INT)′+E_(CC-INT)′ channels. With a 4:2:2 decoder, a new component, called E_(−Y)′, is used to subtract the luminance levels that are present from the CMY channels from the E_(CB-INT)′+E_(CY-INT)′ and E_(CR-INT)′+E_(CC-INT)′ components. The resulting output is now the R and B image components of the EOTF process. E_(−Y)′ is also sent to the G matrix to convert the luminance and color difference components to a green output. Thus, R′G′B′ is input to the EOTF process and output as G_(RGB), R_(RGB), and B_(RGB). In another embodiment, the decoder is a legacy RGB decoder for non-constant luminance systems.

In one embodiment, the standard is SMPTE ST292. In one embodiment, the standard is SMPTE RP431-2. In one embodiment, the standard is ITU-R BT.2020. In another embodiment, the standard is SMPTE RP431-1. In another embodiment, the standard is ITU-R BT.1886. In another embodiment, the standard is SMPTE ST274. In another embodiment, the standard is SMPTE ST296. In another embodiment, the standard is SMPTE ST2084. In yet another embodiment, the standard is ITU-R BT.2100. In yet another embodiment, the standard is SMPTE ST424. In yet another embodiment, the standard is SMPTE ST425. In yet another embodiment, the standard is SMPTE ST2110.

Six-Primary Constant Luminance Decode Using a 4:2:2 Sampling Method

FIG. 45 illustrates one embodiment of a constant luminance encode for a six-primary color system. FIG. 46 illustrates one embodiment of a constant luminance decode for a six-primary color system. The process for constant luminance encode and decode are very similar. The main difference being that the management of E_(Y) ₆ is linear. The encode and decode processes stack into the standard serial data streams in the same way as is present in a non-constant luminance, six-primary color system. In one embodiment, the stacker design is the same as with the non-constant luminance system.

System 2 operation is using a sequential method of mapping to the standard transport instead of the method in System 1 where pixel data is combined to two color primaries in one data set as an 11-bit word. The advantage of System 1 is that there is no change to the standard transport. The advantage of System 2 is that full bit level video can be transported, but at double the normal data rate.

The difference between the systems is the use of two Y channels in System 2. In one embodiment, Y_(RGB) and Y_(CMY) are used to define the luminance value for RGB as one group and CMY for the other. Alternative primaries are compatible with the present invention.

FIG. 47 illustrates one example of 4:2:2 non-constant luminance encoding. Because the RGB and CMY components are mapped at different time intervals, there is no requirement for a stacking process and data is fed directly to the transport format. The development of the separate color difference components is identical to System 1. Alternative primaries are compatible with the present invention.

The encoder for System 2 takes the formatted color components in the same way as System 1. Two matrices are used to build two luminance channels. Y_(RGB) contains the luminance value for the RGB color primaries. Y_(CMY) contains the luminance value for the CMY color primaries. A set of delays are used to sequence the proper channel for Y_(RGB), Y_(CMY), and the RBCY channels. Because the RGB and non-RGB (e.g., CMY) components are mapped at different time intervals, there is no requirement for a stacking process, and data is fed directly to the transport format. The development of the separate color difference components is identical to System 1. The Encoder for System 2 takes the formatted color components in the same way as System 1. Two matrices are used to build two luminance channels: Y_(RGB) contains the luminance value for the RGB color primaries and Y_(CMY) contains the luminance value for the CMY color primaries. This sequences Y_(RGB), C_(R), and CC channels into the even segments of the standardized transport and Y_(CMY), C_(B), and CY into the odd numbered segments. Since there is no combining color primary channels, full bit levels can be used limited only by the design of the standardized transport method. In addition, for use in matrix driven displays, there is no change to the input processing and only the method of outputting the correct color is required if the filtering or emissive subpixel is also placed sequentially.

Timing for the sequence is calculated by the source format descriptor which then flags the start of video and sets the pixel timing.

FIG. 48 illustrates one embodiment of a non-constant luminance decoding system. Decoding uses timing synchronization from the format descriptor and start of video flags that are included in the payload ID, SDP, or EDID tables. This starts the pixel clock for each horizontal line to identify which set of components are routed to the proper part of the decoder. A pixel delay is used to realign the color primarily data of each subpixel. Y_(RGB) and Y_(CMY) are combined to assemble a new Y₆ component which is used to decode the CR, CB, CC, CY, and CM components into RGBCMY.

The constant luminance system is not different from the non-constant luminance system in regard to operation. The difference is that the luminance calculation is done as a linear function instead of including the OOTF. FIG. 49 illustrates one embodiment of a 4:2:2 constant luminance encoding system. FIG. 50 illustrates one embodiment of a 4:2:2 constant luminance decoding system.

Six-Primary Color System Using a 4:2:0 Sampling System

In one embodiment, the six-primary color system uses a 4:2:0 sampling system. The 4:2:0 format is widely used in H.262/MPEG-2, H.264/MPEG-4 Part 10 and VC-1 compression. The process defined in SMPTE RP2050-1 provides a direct method to convert from a 4:2:2 sample structure to a 4:2:0 structure. When a 4:2:0 video decoder and encoder are connected via a 4:2:2 serial interface, the 4:2:0 data is decoded and converted to 4:2:2 by up-sampling the color difference component. In the 4:2:0 video encoder, the 4:2:2 video data is converted to 4:2:0 video data by down-sampling the color difference component.

There typically exists a color difference mismatch between the 4:2:0 video data from the 4:2:0 video data to be encoded. Several stages of codec concatenation are common through the processing chain. As a result, color difference signal mismatch between 4:2:0 video data input to 4:2:0 video encoder and 4:2:0 video output from 4:2:0 video decoder is accumulated and the degradation becomes visible.

Filtering within a Six-Primary Color System Using a 4:2:0 Sampling Method

When a 4:2:0 video decoder and encoder are connected via a serial interface, 4:2:0 data is decoded and the data is converted to 4:2:2 by up-sampling the color difference component, and then the 4:2:2 video data is mapped onto a serial interface. In the 4:2:0 video encoder, the 4:2:2 video data from the serial interface is converted to 4:2:0 video data by down-sampling the color difference component. At least one set of filter coefficients exists for 4:2:0/4:2:2 up-sampling and 4:2:2/4:2:0 down-sampling. The at least one set of filter coefficients provide minimally degraded 4:2:0 color difference signals in concatenated operations.

Filter Coefficients in a Six-Primary Color System Using a 4:2:0 Sampling Method

FIG. 51 illustrates one embodiment of a raster encoding diagram of sample placements for a six-primary color 4:2:0 progressive scan system. Within this compression process, horizontal lines show the raster on a display matrix. Vertical lines depict drive columns. The intersection of these is a pixel calculation. Data around a particular pixel is used to calculate color and brightness of the subpixels. Each “X” shows placement timing of the E_(Y) ₆ _(-INT) sample. Red dots depict placement of the E_(CR-INT)′+E_(CC-INT)′ sample. Blue triangles show placement of the E_(CB-INT)′+E_(CY-INT)′ sample.

In one embodiment, the raster is an RGB raster. In another embodiment, the raster is a RGBCMY raster.

Six-Primary Color System Backwards Compatibility

By designing the color gamut within the saturation levels of standard formats and using inverse color primary positions, it is easy to resolve an RGB image with minimal processing. In one embodiment for six-primary encoding, image data is split across three color channels in a transport system. In one embodiment, the image data is read as six-primary data. In another embodiment, the image data is read as RGB data. By maintaining a standard white point, the axis of modulation for each channel is considered as values describing two colors (e.g., blue and yellow) for a six-primary system or as a single color (e.g., blue) for an RGB system. This is based on where black is referenced. In one embodiment of a six-primary color system, black is decoded at a mid-level value. In an RGB system, the same data stream is used, but black is referenced at bit zero, not a mid-level.

In one embodiment, the RGB values encoded in the 6P stream are based on ITU-R BT.709. In another embodiment, the RGB values encoded are based on SMPTE RP431. Advantageously, these two embodiments require almost no processing to recover values for legacy display.

Two decoding methods are proposed. The first is a preferred method that uses very limited processing, negating any issues with latency. The second is a more straightforward method using a set of matrices at the end of the signal path to conform the 6P image to RGB.

In one embodiment, the decoding is for a 4:4:4 system. In one embodiment, the assumption of black places the correct data with each channel. If the 6P decoder is in the signal path, 11-bit values for RGB are arranged above bit value 2048, while CMY level are arranged below bit value 2047 as 11-bit. However, if this same data set is sent to a display or process that is does not understand 6P processing, then that image data is assumed as black at bit value 0 as a full 12-bit word.

FIG. 52 illustrates one embodiment of the six-primary color unstack process in a 4:2:2 video system. Decoding starts by tapping image data prior to the unstacking process. The input to the 6P unstack will map as shown in FIG. 53. The output of the 6P decoder will map as shown in FIG. 54. This same data is sent uncorrected as the legacy RGB image data. The interpretation of the RGB decode will map as shown in FIG. 55.

Alternatively, the decoding is for a 4:2:2 system. This decode uses the same principles as the 4:4:4 decoder, but because a luminance channel is used instead of discrete color channels, the processing is modified. Legacy image data is still taken prior to unstack from the E_(CB-INT)′+E_(CY-INT)′ and E_(CR-INT)′+E_(CC-INT)′ channels as shown in FIG. 56.

FIG. 57 illustrates one embodiment of a non-constant luminance decoder with a legacy process. The dotted box marked (1) shows the process where a new component called E_(−Y)′ is used to subtract the luminance levels that are present from the CMY channels from the E_(CB-INT)′+E_(CY-INT)′ and E_(CR-INT)′+E_(CC-INT)′ components as shown in box (2). The resulting output is now the R and B image components of the EOTF process. E_(−Y)′ is also sent to the G matrix to convert the luminance and color difference components to a green output as shown in box (3). Thus, R′G′B′ is input to the EOTF process and output as G_(RGB), R_(RGB), and B_(RGB). In another embodiment, the decoder is a legacy RGB decoder for non-constant luminance systems.

For a constant luminance system, the process is very similar with the exception that green is calculated as linear as shown in FIG. 58.

Six-Primary Color System Using a Matrix Output

In one embodiment, the six-primary color system outputs a legacy RGB image. This requires a matrix output to be built at the very end of the signal path. FIG. 59 illustrates one embodiment of a legacy RGB image output at the end of the signal path. The design logic of the C, M, and Y primaries is in that they are substantially equal in saturation and placed at substantially inverted hue angles compared to R, G, and B primaries, respectively. In one embodiment, substantially equal in saturation refers to a ±10% difference in saturation values for the C, M, and Y primaries in comparison to saturation values for the R, G, and B primaries, respectively. In addition, substantially equal in saturation covers additional percentage differences in saturation values falling within the ±10% difference range. For example, substantially equal in saturation further covers a ±7.5% difference in saturation values for the C, M, and Y primaries in comparison to the saturation values for the R, G, and B primaries, respectively; a ±5% difference in saturation values for the C, M, and Y primaries in comparison to the saturation values for the R, G, and B primaries, respectively; a ±2% difference in saturation values for the C, M, and Y primaries in comparison to the saturation values for the R, G, and B primaries, respectively; a ±1% difference in saturation values for the C, M, and Y primaries in comparison to the saturation values for the R, G, and B primaries, respectively; and/or a ±0.5% difference in saturation values for the C, M, and Y primaries in comparison to the saturation values for the R, G, and B primaries, respectively. In a preferred embodiment, the C, M, and Y primaries are equal in saturation to the R, G, and B primaries, respectively. For example, the cyan primary is equal in saturation to the red primary, the magenta primary is equal in saturation to the green primary, and the yellow primary is equal in saturation to the blue primary.

In an alternative embodiment, the saturation values of the C, M, and Y primaries are not required to be substantially equal to their corollary primary saturation value among the R, G, and B primaries, but are substantially equal in saturation to a primary other than their corollary R, G, or B primary value. For example, the C primary saturation value is not required to be substantially equal in saturation to the R primary saturation value, but rather is substantially equal in saturation to the G primary saturation value and/or the B primary saturation value. In one embodiment, two different color saturations are used, wherein the two different color saturations are based on standardized gamuts already in use.

In one embodiment, substantially inverted hue angles refers to a ±10% angle range from an inverted hue angle (e.g., 180 degrees). In addition, substantially inverted hue angles cover additional percentage differences within the ±10% angle range from an inverted hue angle.

For example, substantially inverted hue angles further covers a ±7.5% angle range from an inverted hue angle, a ±5% angle range from an inverted hue angle, a ±2% angle range from an inverted hue angle, a ±1% angle range from an inverted hue angle, and/or a ±0.5% angle range from an inverted hue angle. In a preferred embodiment, the C, M, and Y primaries are placed at inverted hue angles (e.g., 180 degrees) compared to the R, G, and B primaries, respectively.

In one embodiment, the gamut is the ITU-R BT.709-6 gamut. In another embodiment, the gamut is the SMPTE RP431-2 gamut.

The unstack process includes output as six, 11-bit color channels that are separated and delivered to a decoder. To convert an image from a six-primary color system to an RGB image, at least two matrices are used. One matrix is a 3×3 matrix converting a six-primary color system image to XYZ values. A second matrix is a 3×3 matrix for converting from XYZ to the proper RGB color space. In one embodiment, XYZ values represent additive color space values, where XYZ matrices represent additive color space matrices. Additive color space refers to the concept of describing a color by stating the amounts of primaries that, when combined, create light of that color.

When a six-primary display is connected to the six-primary output, each channel will drive each color. When this same output is sent to an RGB display, the non-RGB (e.g., CMY) channels are ignored and only the RGB channels are displayed. An element of operation is that both systems drive from the black area. At this point in the decoder, all are coded as bit value 0 being black and bit value 2047 being peak color luminance. This process can also be reversed in a situation where an RGB source can feed a six-primary display. The six-primary display would then have no information for the non-RGB (e.g., CMY) channels and would display the input in a standard RGB gamut. FIG. 60 illustrates one embodiment of six-primary color output using a non-constant luminance decoder. FIG. 61 illustrates one embodiment of a legacy RGB process within a six-primary color system.

The design of this matrix is a modification of the CIE process to convert RGB to XYZ. First, u′y′ values are converted back to CIE 1931 xyz values using the following formulas:

$x = \frac{9u\prime}{\left( {{6u^{\prime}} - {16v^{\prime}} + {12}} \right)}$ $y = \frac{4v\prime}{\left( {{6u^{\prime}} - {16v^{\prime}} + {12}} \right)}$ z = 1 − x − y

Next, RGBCMY values are mapped to a matrix. The mapping is dependent upon the gamut standard being used. In one embodiment, the gamut is ITU-R BT.709-6. The mapping for RGBCMY values for an ITU-R BT.709-6 (6P-B) gamut are:

$\quad{\left\lbrack {\begin{pmatrix} \; & x & y & z \\ R & 0.640 & 0.330 & 0.030 \\ G & 0.300 & 0.600 & 0.100 \\ B & 0.150 & 0.606 & 0.790 \\ C & 0.439 & 0.540 & 0.021 \\ Y & 0.165 & 0.327 & 0.509 \\ M & 0.320 & 0.126 & 0.554 \end{pmatrix}\begin{pmatrix} \; & R & G & B & C & Y & M \\ x & 0.640 & 0.300 & 0.150 & 0.439 & 0.165 & 0.319 \\ y & 0.330 & 0.600 & 0.060 & 0.540 & 0.327 & 0.126 \\ z & 0.030 & 0.100 & 0.790 & 0.021 & 0.509 & 0.554 \end{pmatrix}} \right\rbrack = \begin{pmatrix} 0.519 & 0.393 & 0.140 \\ 0.393 & 0.460 & 0.160 \\ 0.140 & 0.160 & 0.650 \end{pmatrix}}$

In one embodiment, the gamut is SMPTE RP431-2. The mapping for RGBCMY values for a SMPTE RP431-2 (6P-C) gamut are:

$\left\lbrack {\begin{pmatrix} \; & x & y & z \\ R & 0.680 & 0.320 & 0.000 \\ G & 0.264 & 0.691 & 0.045 \\ B & 0.150 & 0.060 & 0.790 \\ C & 0.450 & 0.547 & 0.026 \\ Y & 0.163 & 0.342 & 0.496 \\ M & 0.352 & 0.142 & 0.505 \end{pmatrix}\begin{pmatrix} \; & R & G & B & C & Y & M \\ x & 0.680 & 0.264 & 0.150 & 0.450 & 0.163 & 0.352 \\ y & 0.320 & 0.690 & 0.060 & 0.547 & 0.342 & 0.142 \\ z & 0.000 & 0.045 & 0.790 & 0.026 & 0.496 & 0.505 \end{pmatrix}} \right\rbrack = \begin{pmatrix} 0.565 & 0.400 & 0.121 \\ 0.400 & 0.549 & 0.117 \\ 0.121 & 0.117 & 0.650 \end{pmatrix}$

Following mapping the RGBCMY values to a matrix, a white point conversion occurs:

$X = {{\frac{x}{y}\mspace{31mu} y} = {{1\mspace{31mu} Z} = {1 - x - y}}}$

For a six-primary color system using an ITU-R BT.709-6 (6P-B) color gamut, the white point is D65:

${{0.9}504} = {{\frac{{0.3}127}{{0.3}290}\mspace{25mu} 0.3584} = {1 - {{0.3}127} - {{0.3}290}}}$

For a six-primary color system using a SMPTE RP431-2 (6P-C) color gamut, the white point is D60:

${{0.9}541} = {{\frac{{0.3}218}{{0.3}372}\mspace{25mu} 0.3410} = {1 - {{0.3}218} - {{0.3}372}}}$

Following the white point conversion, a calculation is required for RGB saturation values, SR, SG, and SB. The results from the second operation are inverted and multiplied with the white point XYZ values. In one embodiment, the color gamut used is an ITU-R BT.709-6 color gamut. The values calculate as:

$\begin{bmatrix} S_{R} \\ S_{G} \\ S_{B} \end{bmatrix}^{{ITU}\text{-}R\mspace{14mu}{BT}{.709}\text{-}6} = \left\lbrack {\begin{pmatrix} {{5.4}45} & {{- {4.6}}44} & {{- {0.0}}253} \\ {{- {4.6}}44} & {{6.3}37} & {{- {0.5}}63} \\ {{- {0.0}}253} & {{- {0.5}}63} & {{1.6}82} \end{pmatrix}\begin{pmatrix} {{0.9}50} \\ 1 \\ {{0.3}58} \end{pmatrix}} \right\rbrack$

Where

$\begin{bmatrix} S_{R} \\ S_{G} \\ S_{B} \end{bmatrix}^{{ITU} - {{RBT}{.709}} - 6} = \begin{bmatrix} {{0.5}22} \\ {{1.7}22} \\ {{0.0}15} \end{bmatrix}$

In one embodiment, the color gamut is a SMPTE RP431-2 color gamut. The values calculate as:

$\begin{bmatrix} S_{R} \\ S_{G} \\ S_{B} \end{bmatrix}^{{SMPTE}\mspace{14mu}{RP}\; 431\text{-}2} = \left\lbrack {\begin{pmatrix} {{3.6}92} & {{- {2.6}}49} & {{- {0.2}}11} \\ {{- {2.6}}49} & {{3.7}95} & {{- {0.1}}89} \\ {{- {0.2}}11} & {{- {0.1}}89} & {{1.6}11} \end{pmatrix}\begin{pmatrix} {{0.9}54} \\ 1 \\ {{0.3}41} \end{pmatrix}} \right\rbrack$

Where

$\begin{bmatrix} S_{R} \\ S_{G} \\ S_{B} \end{bmatrix}^{{SMPTE}\mspace{14mu}{RP}\; 431\text{-}2} = \begin{bmatrix} {{0.8}02} \\ {{1.2}03} \\ {{0.1}59} \end{bmatrix}$

Next, a six-primary color-to-XYZ matrix must be calculated. For an embodiment where the color gamut is an ITU-R BT.709-6 color gamut, the calculation is as follows:

$\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = \left\lbrack {\begin{pmatrix} {{0.5}19} & {{0.3}93} & {{0.1}40} \\ {{0.3}93} & {{0.4}60} & {{0.1}60} \\ {{0.1}40} & {{0.1}60} & {{0.6}50} \end{pmatrix}^{{ITU} - {R\mspace{11mu}{BT}{.709}} - 6}\ \begin{pmatrix} {{0.5}22} & {{1.7}22} & {{0.1}53} \\ {{0.5}22} & {{1.7}22} & {{0.1}53} \\ {{0.5}22} & {{1.7}22} & {{0.1}53} \end{pmatrix}^{D\; 65}} \right\rbrack$

Wherein the resulting matrix is multiplied by the S_(R)S_(G)S_(B) matrix:

$\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = {\begin{bmatrix} {{0.2}71} & {{0.6}77} & {{0.0}02} \\ {{0.2}05} & {{0.7}92} & {{0.0}03} \\ {{0.0}73} & {{0.2}76} & {{0.0}10} \end{bmatrix}\begin{bmatrix} R \\ G \\ B \\ C \\ y \\ M \end{bmatrix}}^{{ITU} - {R\mspace{11mu}{BT}{.709}} - 6}$

For an embodiment where the color gamut is a SMPTE RP431-2 color gamut, the calculation is as follows:

$\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = \left\lbrack {\begin{pmatrix} {{0.5}65} & {{0.4}01} & {{0.1}21} \\ {{0.4}01} & {{0.5}49} & {{0.1}17} \\ {{0.1}21} & {{0.1}17} & {{0.6}50} \end{pmatrix}^{{{SMPTE}\mspace{11mu}{RP}\; 431} - 2}\ \begin{pmatrix} {{0.8}02} & {{1.2}03} & {{0.1}59} \\ {{0.8}02} & {{1.2}03} & {{0.1}59} \\ {{0.8}02} & {{1.2}03} & {{0.1}59} \end{pmatrix}^{D\; 60}} \right\rbrack$

Wherein the resulting matrix is multiplied by the S_(R)S_(G)S_(B) matrix:

$\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} = {\begin{bmatrix} {{0.4}53} & {{0.4}82} & {{0.0}19} \\ {{0.3}21} & {{0.6}60} & {{0.0}19} \\ {{0.0}97} & {{0.1}41} & {{0.1}03} \end{bmatrix}\begin{bmatrix} R \\ G \\ B \\ C \\ Y \\ M \end{bmatrix}}^{{{SMPTE}\mspace{11mu}{RP}\; 431} - 2}$

Finally, the XYZ matrix must converted to the correct standard color space. In an embodiment where the color gamut used is an ITU-R BT709.6 color gamut, the matrices are as follows:

$\begin{bmatrix} R \\ G \\ B \end{bmatrix}^{{ITU} - {R\mspace{11mu}{BT}\; 709.6}} = {\begin{bmatrix} {{3.2}41} & {{- {1.5}}37} & {{- {0.4}}99} \\ {{- {0.9}}69} & {{1.8}76} & {{0.0}42} \\ {{0.0}56} & {{- {0.2}}04} & {{1.0}57} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}$

In an embodiment where the color gamut used is a SMPTE RP431-2 color gamut, the matrices are as follows:

$\begin{bmatrix} R \\ G \\ B \end{bmatrix}^{{{SMPTE}\mspace{11mu}{RP}\; 431} - 2} = {\begin{bmatrix} {{2.7}3} & {{- {1.0}}18} & {{- {0.4}}40} \\ {{- {0.7}}95} & {{1.6}90} & {{0.0}23} \\ {{0.0}41} & {{- {0.0}}88} & {{1.1}01} \end{bmatrix}\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}}$

Packing a Six-Primary Color System into IC_(T)C_(P)

IC_(T)C_(P) (ITP) is a color representation format specified in the Rec. ITU-R BT.2100 standard that is used as a part of the color image pipeline in video and digital photography systems for high dynamic range (HDR) and wide color gamut (WCG) imagery. The I (intensity) component is a luma component that represents the brightness of the video. C_(T) and C_(P) are blue-yellow (“tritanopia”) and red-green (“protanopia”) chroma components. The format is derived from an associated RGB color space by a coordination transformation that includes two matrix transformations and an intermediate non-linear transfer function, known as a gamma pre-correction. The transformation produces three signals: I, C_(T), and C_(P). The ITP transformation can be used with RGB signals derived from either the perceptual quantizer (PQ) or hybrid log-gamma (HLG) nonlinearity functions. The PQ curve is described in ITU-R BT2100-2:2018, Table 4, which is incorporated herein by reference in its entirety.

FIG. 62 illustrates one embodiment of packing six-primary color system image data into an IC_(T)C_(P) (ITP) format. In one embodiment, RGB image data is converted to an XYZ matrix. The XYZ matrix is then converted to an LMS matrix, wherein LMS represents long, medium, and short cone responses. The LMS matrix is then sent to an optical electronic transfer function (OETF). The conversion process is represented below:

$\begin{bmatrix} L \\ M \\ S \end{bmatrix} = {\left\lbrack {\begin{pmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{3l} & a_{32} & a_{33} \end{pmatrix}\begin{pmatrix} {{0.3}59} & {{0.6}96} & {{- {0.0}}36} \\ {{- {0.1}}92} & {{1.1}00} & {{0.0}75} \\ {{0.0}07} & {{0.0}75} & {{0.8}43} \end{pmatrix}} \right\rbrack\begin{bmatrix} R \\ G \\ B \end{bmatrix}}$

Output from the OETF is converted to ITP format. The resulting matrix is:

$\quad\begin{pmatrix} 0.5 & 0.5 & 0 \\ 1.614 & {- 3.323} & 1.710 \\ 4.378 & {- 4.246} & {- 0.135} \end{pmatrix}$

FIG. 63 illustrates one embodiment of a six-primary color system converting RGBCMY image data into XYZ image data for an ITP format (e.g., 6P-B, 6P-C). For a six-primary color system, this is modified by replacing the RGB to XYZ matrix with a process to convert RGBCMY to XYZ. This is the same method as described in the legacy RGB process. The new matrix is as follows for an ITU-R BT.709-6 (6P-B) color gamut:

$\begin{bmatrix} L \\ M \\ S \end{bmatrix} = {\begin{pmatrix} {{0.2}71} & {{0.6}77} & {{0.0}02} \\ {{0.2}05} & {{0.7}92} & {{0.0}03} \\ {{0.0}73} & {{0.2}77} & {{0.1}00} \end{pmatrix}{\begin{pmatrix} {{0.3}59} & {{0.6}96} & {{- {0.0}}36} \\ {{- {0.1}}92} & {{1.1}00} & {{0.0}75} \\ {{0.0}07} & {{0.0}75} & {{0.8}43} \end{pmatrix}\begin{bmatrix} R \\ G \\ B \\ C \\ y \\ M \end{bmatrix}}^{{ITU} - {R\mspace{11mu}{BT}{.709}} - 6}}$

RGBCMY data, based on an ITU-R BT.709-6 color gamut, is converted to an XYZ matrix. The resulting XYZ matrix is converted to an LMS matrix, which is sent to an OETF. Once processed by the OETF, the LMS matrix is converted to an ITP matrix. The resulting ITP matrix is as follows:

$\quad\begin{pmatrix} 0.5 & 0.5 & 0 \\ 1.614 & {- 3.323} & 1.710 \\ 4.378 & {- 4.246} & {- 0.135} \end{pmatrix}$

In another embodiment, the LMS matrix is sent to an Optical Optical Transfer Function (OOTF). In yet another embodiment, the LMS matrix is sent to a Transfer Function other than OOTF or OETF.

In another embodiment, the RGBCMY data is based on the SMPTE ST431-2 (6P-C) color gamut. The matrices for an embodiment using the SMPTE ST431-2 color gamut are as follows:

$\begin{bmatrix} L \\ M \\ S \end{bmatrix} = {\begin{pmatrix} {{0.4}53} & {{0.4}81} & {{0.0}19} \\ {{0.3}21} & {{0.6}60} & {{0.0}19} \\ {{0.0}97} & {{0.1}41} & {{0.1}03} \end{pmatrix}{\begin{pmatrix} {{0.3}59} & {{0.6}96} & {{- {0.0}}36} \\ {{- {0.1}}92} & {{1.1}00} & {{0.0}75} \\ {{0.0}07} & {{0.0}75} & {{0.8}43} \end{pmatrix}\begin{bmatrix} R \\ G \\ B \\ C \\ Y \\ M \end{bmatrix}}^{{{SMPTE}\mspace{14mu}{ST}\; 431} - 2}}$

The resulting ITP matrix is:

$\quad\begin{pmatrix} 0.5 & 0.5 & 0 \\ 1.614 & {- 3.323} & 1.710 \\ 4.378 & {- 4.246} & {- 0.135} \end{pmatrix}$

The decode process uses the standard ITP decode process, as the S_(R)S_(G)S_(B) cannot be easily inverted. This makes it difficult to recover the six RGBCMY components from the ITP encode. Therefore, the display is operable to use the standard ICtCp decode process as described in the standards and is limited to just RGB output.

Converting to a Five-Color Multi-Primary Display

In one embodiment, the system is operable to convert image data incorporating five primary colors. In one embodiment, the five primary colors include Red (R), Green (G), Blue (G), Cyan (C), and Yellow (Y), collectively referred to as RGBCY. In another embodiment, the five primary colors include Red (R), Green (G), Blue (B), Cyan (C), and Magenta (M), collectively referred to as RGBCM. In one embodiment, the five primary colors do not include Magenta (M).

In one embodiment, the five primary colors include Red (R), Green (G), Blue (B), Cyan (C), and Orange (O), collectively referred to as RGBCO. RGBCO primaries provide optimal spectral characteristics, transmittance characteristics, and makes use of a D65 white point. See, e.g., Moon-Cheol Kim et al., Wide Color Gamut Five Channel Multi-Primary for HDTV Application, Journal of Imaging Sci. & Tech. Vol. 49, No. 6, November/December 2005, at 594-604, which is hereby incorporated by reference in its entirety.

In one embodiment, a five-primary color model is expressed as F=MC, where F is equal to a tristimulus color vector, F=(X, Y, Z)^(T), and C is equal to a linear display control vector, C=(C1, C2, C3, C4, C5)^(T). Thus, a conversion matrix for the five-primary color model is represented as

$M = \begin{pmatrix} X_{l} & X_{2} & X_{3} & X_{4} & X_{5} \\ Y_{1} & Y_{2} & Y_{3} & Y_{4} & Y_{5} \\ Z_{1} & Z_{2} & Z_{3} & Z_{4} & Z_{5} \end{pmatrix}$

Using the above equation and matrix, a gamut volume is calculated for a set of given control vectors on the gamut boundary. The control vectors are converted into CIELAB uniform color space. However, because matrix M is non-square, the matrix inversion requires splitting the color gamut into a specified number of pyramids, with the base of each pyramid representing an outer surface and where the control vectors are calculated using linear equation for each given XYZ triplet present within each pyramid. By separating regions into pyramids, the conversion process is normalized. In one embodiment, a decision tree is created in order to determine which set of primaries are best to define a specified color. In one embodiment, a specified color is defined by multiple sets of primaries. In order to locate each pyramid, 2D chromaticity look-up tables are used, with corresponding pyramid numbers for input chromaticity values in xy or u′v′. Typical methods using pyramids require 1000×1000 address ranges in order to properly search the boundaries of adjacent pyramids with look-up table memory. The system of the present invention uses a combination of parallel processing for adjacent pyramids and at least one algorithm for verifying solutions by checking constraint conditions. In one embodiment, the system uses a parallel computing algorithm. In one embodiment, the system uses a sequential algorithm. In another embodiment, the system uses a brightening image transformation algorithm. In another embodiment, the system uses a darkening image transformation algorithm. In another embodiment, the system uses an inverse sinusoidal contrast transformation algorithm. In another embodiment, the system uses a hyperbolic tangent contrast transformation algorithm. In yet another embodiment, the system uses a sine contrast transformation execution times algorithm. In yet another embodiment, the system uses a linear feature extraction algorithm. In yet another embodiment, the system uses a JPEG2000 encoding algorithm. In yet another embodiment, the system uses a parallelized arithmetic algorithm. In yet another embodiment, the system uses an algorithm other than those previously mentioned. In yet another embodiment, the system uses any combination of the aforementioned algorithms.

Mapping a Six-Primary Color System into Standardized Transport Formats

Each encode and/or decode system fits into existing video serial data streams that have already been established and standardized. This is key to industry acceptance. Encoder and/or decoder designs require little or no modification for a six-primary color system to map to these standard serial formats.

FIG. 64 illustrates one embodiment of a six-primary color system mapping to a SMPTE ST424 standard serial format. The SMPTE ST424/ST425 set of standards allow very high sampling systems to be passed through a single cable. This is done by using alternating data streams, each containing different components of the image. For use with a six-primary color system transport, image formats are limited to RGB due to the absence of a method to send a full bandwidth Y signal.

The process for mapping a six-primary color system to a SMPTE ST425 format is the same as mapping to a SMPTE ST424 format. To fit a six-primary color system into a SMPTE ST425/424 stream involves the following substitutions: G_(INT)′+M_(INT)′ is placed in the Green data segments, R_(INT)′+C_(INT)′ is placed in the Red data segments, and B_(INT)′+Y_(INT)′ is placed into the Blue data segments. FIG. 65 illustrates one embodiment of an SMPTE 424 6P readout.

System 2 requires twice the data rate as System 1, so it is not compatible with SMPTE 424. However, it maps easily into SMPTE ST2082 using a similar mapping sequence. In one example, System 2 is used to have the same data speed defined for 8K imaging to show a 4K image.

In one embodiment, sub-image and data stream mapping occur as shown in SMPTE ST2082. An image is broken into four sub-images, and each sub-image is broken up into two data streams (e.g., sub-image 1 is broken up into data stream 1 and data stream 2). The data streams are put through a multiplexer and then sent to the interface as shown in FIG. 66.

FIG. 67 and FIG. 68 illustrate serial digital interfaces for a six-primary color system using the SMPTE ST2082 standard. In one embodiment, the six-primary color system data is RGBCMY data, which is mapped to the SMPTE ST2082 standard (FIG. 67). Data streams 1, 3, 5, and 7 follow the pattern shown for data stream 1. Data streams 2, 4, 6, and 8 follow the pattern shown for data stream 2. In one embodiment, the six-primary color system data is Y_(RGB) Y_(CMY) C_(R) C_(B) C_(C) C_(Y) data, which is mapped to the SMPTE ST2082 standard (FIG. 68). Data streams 1, 3, 5, and 7 follow the pattern shown for data stream 1. Data streams 2, 4, 6, and 8 follow the pattern shown for data stream 2.

In one embodiment, the standard serial format is SMPTE ST292. SMPTE ST292 is an older standard than ST424 and is a single wire format for 1.5 GB video, whereas ST424 is designed for up to 3 GB video. However, while ST292 can identify the payload ID of SMPTE ST352, it is constrained to only accepting an image identified by a hex value, 0 h. All other values are ignored. Due to the bandwidth and identifications limitations in ST292, a component video six-primary color system incorporates a full bit level luminance component. To fit a six-primary color system into a SMPTE ST292 stream involves the following substitutions: E_(Y) ₆ _(-INT)′ is placed in the Y data segments, E_(Cb-INT)′+E_(Cy-INT)′ is placed in the Cb data segments, and E_(Cr-INT)′+E_(Cc-INT)′ is placed in the Cr data segments. In another embodiment, the standard serial format is SMPTE ST352.

SMPTE ST292 and ST424 Serial Digital Interface (SDI) formats include payload identification (ID) metadata to help the receiving device identify the proper image parameters. The tables for this need modification by adding at least one flag identifying that the image source is a six-primary color RGB image. Therefore, six-primary color system format additions need to be added. In one embodiment, the standard is the SMPTE ST352 standard.

FIG. 69 illustrates one embodiment of an SMPTE ST292 6P mapping. FIG. 70 illustrates one embodiment of an SMPTE ST292 6P readout.

FIG. 71 illustrates modifications to the SMPTE ST352 standards for a six-primary color system. Hex code “Bh” identifies a constant luminance source and flag “Fh” indicates the presence of a six-primary color system. In one embodiment, Fh is used in combination with at least one other identifier located in byte 3. In another embodiment, the Fh flag is set to 0 if the image data is formatted as System 1 and the Fh flag is set to 1 if the image data is formatted as System 2.

In another embodiment, the standard serial format is SMPTE ST2082. Where a six-primary color system requires more data, it is not always compatible with SMPTE ST424. However, it maps easily into SMPTE ST2082 using the same mapping sequence. This usage has the same data speed defined for 8K imaging in order to display a 4K image.

In another embodiment, the standard serial format is SMPTE ST2022. Mapping to ST2022 is similar to mapping to ST292 and ST242, but as an ETHERNET format. The output of the stacker is mapped to the media payload based on Real-time Transport Protocol (RTP) 3550, established by the Internet Engineering Task Force (IETF). RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, including, but not limited to, audio, video, and/or simulation data, over multicast or unicast network services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide control and identification functionality. There are no changes needed in the formatting or mapping of the bit packing described in SMPTE ST 2022-6: 2012 (HBRMT), which is incorporated herein by reference in its entirety.

FIG. 72 illustrates one embodiment of a modification for a six-primary color system using the SMPTE ST2202 standard. For SMPTE ST2202-6:2012 (HBRMT), there are no changes needed in formatting or mapping of the bit packing. ST2022 relies on header information to correctly configure the media payload. Parameters for this are established within the payload header using the video source format fields including, but not limited to, MAP, FRAME, FRATE, and/or SAMPLE. MAP, FRAME, and FRATE remain as described in the standard. MAP is used to identify if the input is ST292 or ST425 (RGB or Y Cb Cr). SAMPLE is operable for modification to identify that the image is formatted as a six-primary color system image. In one embodiment, the image data is sent using flag “0 h” (unknown/unspecified).

In another embodiment, the standard is SMPTE ST2110. SMPTE ST2110 is a relatively new standard and defines moving video through an Internet system. The standard is based on development from the IETF and is described under RFC3550. Image data is described through “pgroup” construction. Each pgroup consists of an integer number of octets. In one embodiment, a sample definition is RGB or YCbCr and is described in metadata. In one embodiment, the metadata format uses a Session Description Protocol (SDP) format. Thus, pgroup construction is defined for 4:4:4, 4:2:2, and 4:2:0 sampling as 8-bit, 10-bit, 12-bit, and in some cases 16-bit and 16-bit floating point wording. In one embodiment, six-primary color image data is limited to a 10-bit depth. In another embodiment, six-primary color image data is limited to a 12-bit depth. Where more than one sample is used, it is described as a set. For example, 4:4:4 sampling for blue, as a non-linear RGB set, is described as C0′B, C1′B, C2′B, C3′B, and C4′B. The lowest number index being left most within the image. In another embodiment, the method of substitution is the same method used to map six-primary color content into the ST2110 standard.

In another embodiment, the standard is SMPTE ST2110. SMPTE ST2110-20 describes the construction for each pgroup. In one embodiment, six-primary color system content arrives for mapping as non-linear data for the SMPTE ST2110 standard. In another embodiment, six-primary color system content arrives for mapping as linear data for the SMPTE ST2110 standard.

FIG. 73 illustrates a table of 4:4:4 sampling for a six-primary color system for a 10-bit video system. For 4:4:4 10-bit video, 15 octets are used and cover 4 pixels.

FIG. 74 illustrates a table of 4:4:4 sampling for a six-primary color system for a 12-bit video system. For 4:4:4 12-bit video, 9 octets are used and cover 2 pixels before restarting the sequence.

Non-linear RGBCMY image data arrives as: G_(INT)′+M_(INT)′, R_(INT)′+C_(INT)′, and B_(INT)′+Y_(INT)′. Component substitution follows what has been described for SMPTE ST424, where

G_(INT)^(′)+

M_(INT)′ is placed in the Green data segments, R_(INT)′+C_(INT)′ is placed in the Red data segments, and B_(INT)′+Y_(INT)′ is placed in the Blue data segments. The sequence described in the standard is shown as R0′, G0′, B0′, R1′, G1′, B1′, etc.

FIG. 75 illustrates sequence substitutions for 10-bit and 12-bit video in 4:2:2 sampling systems in a Y Cb Cr Cc Cy color space. Components are delivered to a 4:2:2 pgroup including, but not limited to, E_(Y6-INT)′, E_(Cb-INT)′+E_(Cy-INT)′, and E_(Cr-INT)′+E_(Cc-INT)′. For 4:2:2 10-bit video, 5 octets are used and cover 2 pixels before restarting the sequence. For 4:2:2 12-bit video, 6 octets are used and cover 2 pixels before restarting the sequence. Component substitution follows what has been described for SMPTE ST292, where E_(Y6-INT)′ is placed in the Y data segments, E_(Cb-INT)′+E_(Cy-INT)′ is placed in the Cb data segments, and E_(Cr-INT)′+E_(Cc-INT)′ is placed in the Cr data segments. The sequence described in the standard is shown as Cb0′, Y0′, Cr0′, Y1′, Cr1′, Y3′, Cb2′, Y4′, Cr2′, Y5′, etc. In another embodiment, the video data is represented at a bit level other than 10-bit or 12-bit. In another embodiment, the sampling system is a sampling system other than 4:2:2. In another embodiment, the standard is STMPE ST2110.

FIG. 76 illustrates sample placements of six-primary system components for a 4:2:2 sampling system image. This follows the substitutions illustrated in FIG. 75, using a 4:2:2 sampling system.

FIG. 77 illustrates sequence substitutions for 10-bit and 12-bit video in 4:2:0 sampling systems using a Y Cb Cr Cc Cy color space. Components are delivered to a pgroup including, but not limited to, E_(Y6-INT)′, E_(Cb-INT)′+E_(Cy-INT)′, and E_(Cr-INT)′+E_(Cc-INT)′. For 4:2:0 10-bit video data, 15 octets are used and cover 8 pixels before restarting the sequence. For 4:2:0 12-bit video data, 9 octets are used and cover 4 pixels before restarting the sequence. Component substitution follows what is described in SMPTE ST292 where E_(Y6-INT)′ is placed in the Y data segments, E_(Cb-INT)′+E_(Cy-INT)′ is placed in the Cb data segments, and E_(Cr-INT)′+E_(Cc-INT)′ is placed in the Cr data segments. The sequence described in the standard is shown as Y′00, Y′01, Y′, etc.

FIG. 78 illustrates sample placements of six-primary system components for a 4:2:0 sampling system image. This follows the substitutions illustrated in FIG. 77, using a 4:2:0 sampling system.

FIG. 79 illustrates modifications to SMPTE ST2110-20 for a 10-bit six-primary color system in 4:4:4 video. SMPTE ST2110-20 describes the construction of each “pgroup”. Normally, six-primary color system data and/or content would arrive for mapping as non-linear. However, with the present system there is no restriction on mapping data and/or content. For 4:4:4, 10-bit video, 15 octets are used and cover 4 pixels before restarting the sequence. Non-linear, six-primary color system image data arrives as G_(INT)′, B_(INT)′, R_(INT)′, M_(INT)′, Y_(INT)′, and C_(INT)′. The sequence described in the standard is shown as R0′, G0′, B0′, R1′, G1′, B1′, etc.

FIG. 80 illustrates modifications to SMPTE ST2110-20 for a 12-bit six-primary color system in 4:4:4 video. For 4:4:4, 12-bit video, 9 octets are used and cover 2 pixels before restarting the sequence. Non-linear, six-primary color system image data arrives as G_(INT)′, B_(INT)′, R_(INT)′, M_(INT)′, Y_(INT)′, and C_(INT)′. The sequence described in the standard is shown as R0′, G0′, B0′, R1′, G1′, B1′, etc.

FIG. 81 illustrates modifications to SMPTE ST2110-20 for a 10-bit six primary color system in 4:2:2 video. Components that are delivered to a SMPTE ST2110 pgroup include, but are not limited to, E_(Yrgb-INT)′, E_(Ycym-INT)′, E_(Cb-INT)′, E_(Cr-INT)′, E_(Cy-INT)′, and E_(Cc-INT)′. For 4:2:2, 10-bit video, 5 octets are used and cover 2 pixels before restarting the sequence. For 4:2:2:2, 12-bit video, 6 octets are used and cover 2 pixels before restarting the sequence. Component substitution follows what is described for SMPTE ST292, where E_(Yrgb-INT)′ or E_(Ycym-INT)′ are placed in the Y data segments, E_(Cr-INT)′ or E_(Cc-INT)′ are placed in the Cr data segments, and E_(Cb-INT)′ or E_(Cy-INT)′ are placed in the Cb data segments. The sequence described in the standard is shown as Cb′0, Y′0, Cr′0, Y′1, Cb′1, Y′2, Cr′1, Y′3, Cb′2, Y′4, Cr′2, etc.

FIG. 82 illustrates modifications to SMPTE ST2110-20 for a 12-bit six-primary color system in 4:2:0 video. Components that are delivered to a SMPTE ST2110 pgroup are the same as with the 4:2:2 method. For 4:2:0, 10-bit video, 15 octets are used and cover 8 pixels before restarting the sequence. For 4:2:0, 12-bit video, 9 octets are used and cover 4 pixels before restarting the sequence. Component substitution follows what is described for SMPTE ST292, where E_(Yrgb-INT)′ or E_(Ycym-INT)′ are placed in the Y data segments, E_(Cr-INT)′ or E_(Cc-INT)′ are placed in the Cr data segments, and E_(Cb-INT)′ or E_(Cy-INT)′ are placed in the Cb data segments. The sequence described in the standard is shown as Y′00, Y′01, Y′, etc.

Table 17 summarizes mapping to SMPTE ST2110 for 4:2:2:2:2 and 4:2:0:2:0 sampling for System 1 and Table 18 summaries mapping to SMPTE ST2110 for 4:4:4:4:4:4 sampling (linear and non-linear) for System 1.

TABLE 17 Pgroup Sampling Bit Depth Octets Pixels Y PbPr Sample Order 6P Sample Order 4:2:2:2:2 8 4 2 C_(B)′, Y0′, C_(R)′, Y1′ 10 5 2 C_(B)′, Y0′, C_(R)′, Y1′ C_(B)′ + C_(Y)′, Y0′, C_(R)′ + C_(C)′, Y1′ 12 6 2 C_(B)′, Y0′, C_(R)′, Y1′ C_(B)′ + C_(Y)′, Y0′, C_(R)′ + C_(C)′, Y1′ 16, 16f 8 2 C′_(B), Y′0, C′_(R), Y′1 C_(B)′ + C_(Y)′, Y0′, C_(R)′ + C_(C)′, Y1′ 4:2:0:2:0 8 6 4 Y′00, Y′01, Y′10, Y′11, C_(B)′00, C_(R)′00 10 15 8 Y′00, Y′01, Y′10, Y′11, Y′00, Y′01, Y′10, Y′11, C_(B)′00 + C_(Y)′00, C_(B)′00, C_(R)′00 C_(R)′00 + C_(C)′00 Y′02, Y′03, Y′12, Y′13, Y′02, Y′03, Y′12, Y′13, C_(B)′01 + C_(Y)′01, C_(B)′01, C_(R)′01 C_(R)′01 + C_(C)′01 12 9 4 Y′00, Y′01, Y′10, Y′11, Y′00, Y′01, Y′10, Y′11, C_(B)′00 + C_(Y)′00, C_(B)′00, C_(R)′00 C_(R)′00 + C_(C)′00

TABLE 18 Bit pgroup Sampling Depth Octets pixels RGB Sample Order 6P Sample Order 4:4:4:4:4:4 8 3 1 R, G, B Linear 10 15 4 R0, G0, B0, R1, G1, B1, R + C0, G + M0, B + Y0, R2, G2, B2 R + C1, G + M1, B + Y1, R + C2, G + M2, B + Y2 12 9 2 R0, G0, B0, R1, G1, B1 R + C0, G + M0, B + Y0, R + C1, G + M1, B + Y1 16, 16f 6 1 R, G, B R + C, G + M, B + Y 4:4:4:4:4:4 8 3 1 R′, G′, B′ Non- 10 15 4 R0′, G0′, B0′, R1′, G1′, R′ + C′0, G′ + M′0, Linear B1′, R2′, G2′, B2′ B′ + Y′0, R′ + C′1, G′ + M′1, B′ + Y′1, R′ + C′2, G′ + M′2, B′ + Y′2 12 9 2 R0′, G0′, B0′, R1′, G1′, R′ + C′0, G′ + M′0, B1′ B′ + Y′0, R′ + C′1, G′ + M′1, B′ + Y′1 16, 16f 6 1 R′, G′, B′ R′ + C′, G′ + M′, B′ + Y′

Table 19 summarizes mapping to SMPTE ST2110 for 4:2:2:2:2 sampling for System 2 and Table 20 summaries mapping to SMPTE ST2110 for 4:4:4:4:4:4 sampling (linear and non-linear) for System 2.

TABLE 19 Y PbPr Bit pgroup Sample Sampling Depth octets pixels Order 6P Sample Order 4:2:2:2:2  8 8 2 C_(B)′, Y0′, C_(B), C_(Y)′, Y_(RGB)0′, C_(R)′, C_(C)′, C_(R)′, Y1′ Y_(CMY)0′ C_(B)′, C_(Y)′, Y_(RGB)1′ 10 10 2 C_(B)′, Y0′, C_(B), C_(Y)′, Y_(RGB)0′, C_(R)′, C_(C)′, C_(R)′, Y1′ Y_(CMY)0′ C_(B)′, C_(Y)′, Y_(RGB)1′ 12 12 2 C_(B)′, Y0′, C_(B), C_(Y)′, Y_(RGB)0′, C_(R)′, C_(C)′, C_(R)′, Y1′ Y_(CMY)0′ C_(B)′, C_(Y)′, Y_(RGB)1′ 16, 16f 16 2 C′_(B), Y′0, C_(B), C_(Y)′, Y_(RGB)0′, C_(R)′, C_(C)′, C′_(R), Y1 Y_(CMY)0′ C_(B)′, C_(Y)′, Y_(RGB)1′

TABLE 20 Bit pgroup Sampling Depth octets pixels RGB Sample Order 6P Sample Order 4:4:4:4:4:4 8 3 1 R, G, B R, C, G, M, B, Y Linear 10 15 4 R0, G0, B0, R1, G1, R0, C0, G0, M0, B0, Y0, R1, C1, G1, M1, B1, R2, G2, B2 B1, Y1, R2, C2, G2, M2, B2 + Y2 12 9 2 R0, G0, B0, R1, G1, R0, C0, G0, M0, B0, Y0, B1 R1, C1, G1, M1, B1, Y1 16, 16f 6 1 R, G, B R, C, G, M, B, Y 4:4:4:4:4:4 8 3 1 R′, G′, B′ R′, C′, G′, M′, B′, Y′ Non-Linear 10 15 4 R0′, G0′, B0′, R1′, R0′, C0′, G0′, M0′, B0′, Y0′, R1′, C1′, G1′, B1′, R2′, G1′, M1′, B1′, Y1′, R2′, C2′, G2′, B2′ G2′, M2′, B2′ + Y2′ 12 9 2 R0′, G0′, B0′, R1′, R0′, C0′, G0′, M0′, B0′, Y0′, G1′, B1′ R1′, C1′, G1′, M1′, B1′, Y1′ 16, 16f 6 1 R′, G′, B′ R′, C′, G′, M′, B′, Y′

Session Description Protocol (SDP) Modification for a Six-Primary Color System

SDP is derived from IETF RFC 4566 which sets parameters including, but not limited to, bit depth and sampling parameters. IETF RFC 4566 (2006) is incorporated herein by reference in its entirety. In one embodiment, SDP parameters are contained within the RTP payload. In another embodiment, SDP parameters are contained within the media format and transport protocol. This payload information is transmitted as text. Therefore, modifications for the additional sampling identifiers requires the addition of new parameters for the sampling statement. SDP parameters include, but are not limited to, color channel data, image data, framerate data, a sampling standard, a flag indicator, an active picture size code, a timestamp, a clock frequency, a frame count, a scrambling indicator, and/or a video format indicator. For non-constant luminance imaging, the additional parameters include, but are not limited to, RGBCMY-4:4:4, YBRCY-4:2:2, and YBRCY-4:2:0. For constant luminance signals, the additional parameters include, but are not limited to, CLYBRCY-4:2:2 and CLYBRCY-4:2:0.

Additionally, differentiation is included with the colorimetry identifier in one embodiment. For example, 6PB1 defines 6P with a color gamut limited to ITU-R BT.709 formatted as System 1, 6PB2 defines 6P with a color gamut limited to ITU-R BT.709 formatted as System 2, 6PB3 defines 6P with a color gamut limited to ITU-R BT.709 formatted as System 3, 6PC1 defines 6P with a color gamut limited to SMPTE RP 431-2 formatted as System 1, 6PC2 defines 6P with a color gamut limited to SMPTE RP 431-2 formatted as System 2, 6PC3 defines 6P with a color gamut limited to SMPTE RP 431-2 formatted as System 3, 6PS1 defines 6P with a color gamut as Super 6P formatted as System 1, 6PS2 defines 6P with a color gamut as Super 6P formatted as System 2, and 6PS3 defines 6P with a color gamut as Super 6P formatted as System 3.

Colorimetry can also be defined between a six-primary color system using the ITU-R BT.709-6 standard and the SMPTE ST431-2 standard, or colorimetry can be left defined as is standard for the desired standard. For example, the SDP parameters for a 1920×1080 six-primary color system using the ITU-R BT.709-6 standard with a 10-bit signal as System 1 are as follows: m=video 30000 RTP/AVP 112, a=rtpmap:112 raw/90000, a=fmtp:112, sampling=YBRCY-4:2:2, width=1920, height=1080, exactframerate=30000/1001, depth=10, TCS=SDR, colorimetry=6PB1, PM=2110GPM, SSN=ST2110-20:2017.

In one embodiment, the six-primary color system is integrated with a Consumer Technology Association (CTA) 861-based system. CTA-861 establishes protocols, requirements, and recommendations for the utilization of uncompressed digital interfaces by consumer electronics devices including, but not limited to, digital televisions (DTVs), digital cable, satellite or terrestrial set-top boxes (STBs), and related peripheral devices including, but not limited to, DVD players and/or recorders, and other related Sources or Sinks.

These systems are provided as parallel systems so that video content is parsed across several line pairs. This enables each video component to have its own transition-minimized differential signaling (TMDS) path. TMDS is a technology for transmitting high-speed serial data and is used by the Digital Visual Interface (DVI) and High-Definition Multimedia Interface (HDMI) video interfaces, as well as other digital communication interfaces. TMDS is similar to low-voltage differential signaling (LVDS) in that it uses differential signaling to reduce electromagnetic interference (EMI), enabling faster signal transfers with increased accuracy. In addition, TMDS uses a twisted pair for noise reduction, rather than a coaxial cable that is conventional for carrying video signals. Similar to LVDS, data is transmitted serially over the data link. When transmitting video data, and using HDMI, three TMDS twisted pairs are used to transfer video data.

In such a system, each pixel packet is limited to 8 bits only. For bit depths higher than 8 bits, fragmented packs are used. This arrangement is no different than is already described in the current CTA-861 standard.

Based on CTA extension Version 3, identification of a six-primary color transmission is performed by the sink device (e.g., the monitor). Adding recognition of the additional formats is flagged in the CTA Data Block Extended Tag Codes (byte 3). Since codes 33 and above are reserved, any two bits could be used to identify that the format is RGB, RGBCMY, Y Cb Cr, or Y Cb Cr Cc Cy and/or identify System 1 or System 2. Should byte 3 define a six-primary sampling format, and where the block 5 extension identifies byte 1 as ITU-R BT.709, then logic assigns as 6P-B. However, should byte 4 bit 7 identify colorimetry as DCI-P3, the color gamut is assigned as 6P-C.

In one embodiment, the system alters the Auxiliary Video Information (AVI) Infoframe Data to identify content. AVI Infoframe Data is shown in Table 10 of CTA 861-G. In one embodiment, Y2=1, Y1=0, and Y0=0 identifies content as 6P 4:2:0:2:0. In another embodiment, Y2=1, Y1=0, and Y0=1 identifies content as Y Cr Cb Cc Cy. In yet another embodiment, Y2=1, Y1=1, and Y0=0 identifies content as RGBCMY.

Byte 2 C1=1, C0=1 identifies extended colorimetry in Table 11 of CTA 861-G. Byte 3 EC2, EC1, EC0 identifies additional colorimetry extension valid in Table 13 of CTA 861-G. Table 14 of CTA 861-G reserves additional extensions. In one embodiment, ACE3=1, ACE2=0, ACE1=0, and ACE0=X identifies 6P-B. In one embodiment, ACE3=0, ACE2=1, ACE1=0, and ACE0=X identifies 6P-C. In one embodiment, ACE3=0, ACE2=0, ACE1=1, and ACE0=X identifies System 1. In one embodiment, ACE3=1, ACE2=1, ACE1=0, and ACE0=X identifies System 2.

FIG. 83 illustrates the current RGB sampling structure for 4:4:4 sampling video data transmission. For HDMI 4:4:4 sampling, video data is sent through three TMDS line pairs. FIG. 84 illustrates a six-primary color sampling structure, RGBCMY, using System 1 for 4:4:4 sampling video data transmission. In one embodiment, the six-primary color sampling structure complies with CTA 861-G, November 2016, Consumer Technology Association, which is incorporated herein by reference in its entirety. FIG. 85 illustrates an example of System 2 to RGBCMY 4:4:4 transmission. FIG. 86 illustrates current Y Cb Cr 4:2:2 sampling transmission as non-constant luminance. FIG. 87 illustrates a six-primary color system (System 1) using Y Cr Cb Cc Cy 4:2:2 sampling transmission as non-constant luminance. FIG. 88 illustrates an example of a System 2 to Y Cr Cb Cc Cy 4:2:2 Transmission as non-constant luminance. In one embodiment, the Y Cr Cb Cc Cy 4:2:2 sampling transmission complies with CTA 861-G, November 2016, Consumer Technology Association. FIG. 89 illustrates current Y Cb Cr 4:2:0 sampling transmission. FIG. 90 illustrates a six-primary color system (System 1) using Y Cr Cb Cc Cy 4:2:0 sampling transmission.

HDMI sampling systems include Extended Display Identification Data (EDID) metadata. EDID metadata describes the capabilities of a display device to a video source. The data format is defined by a standard published by the Video Electronics Standards Association (VESA). The EDID data structure includes, but is not limited to, manufacturer name and serial number, product type, phosphor or filter type, timings supported by the display, display size, luminance data, and/or pixel mapping data. The EDID data structure is modifiable and modification requires no additional hardware and/or tools.

EDID information is transmitted between the source device and the display through a display data channel (DDC), which is a collection of digital communication protocols created by VESA. With EDID providing the display information and DDC providing the link between the display and the source, the two accompanying standards enable an information exchange between the display and source.

In addition, VESA has assigned extensions for EDID. Such extensions include, but are not limited to, timing extensions (00), additional time data black (CEA EDID Timing Extension (02)), video timing block extensions (VTB-EXT (10)), EDID 2.0 extension (20), display information extension (DI-EXT (40)), localized string extension (LS-EXT (50)), microdisplay interface extension (MI-EXT (60)), display ID extension (70), display transfer characteristics data block (DTCDB (A7, AF, BF)), block map (F0), display device data block (DDDB (FF)), and/or extension defined by monitor manufacturer (FF).

In one embodiment, SDP parameters include data corresponding to a payload identification (ID) and/or EDID information.

Multi-Primary Color System Display

FIG. 91 illustrates a dual stack LCD projection system for a six-primary color system. In one embodiment, the display is comprised of a dual stack of projectors. This display uses two projectors stacked on top of one another or placed side by side. Each projector is similar, with the only difference being the color filters in each unit. Refresh and pixel timings are synchronized, enabling a mechanical alignment between the two units so that each pixel overlays the same position between projector units. In one embodiment, the two projectors are Liquid-Crystal Display (LCD) projectors. In another embodiment, the two projectors are Digital Light Processing (DLP) projectors. In yet another embodiment, the two projectors are Liquid-Crystal on Silicon (LCOS) projectors. In yet another embodiment, the two projectors are Light-Emitting Diode (LED) projectors.

In one embodiment, the display is comprised of a single projector. A single projector six-primary color system requires the addition of a second cross block assembly for the additional colors. One embodiment of a single projector (e.g., single LCD projector) is shown in FIG. 92. A single projector six-primary color system includes a cyan dichroic mirror, an orange dichroic mirror, a blue dichroic mirror, a red dichroic mirror, and two additional standard mirrors. In one embodiment, the single projector six-primary color system includes at least six mirrors. In another embodiment, the single projector six-primary color system includes at least two cross block assembly units.

FIG. 93 illustrates a six-primary color system using a single projector and reciprocal mirrors. In one embodiment, the display is comprised of a single projector unit working in combination with at first set of at least six reciprocal mirrors, a second set of at least six reciprocal mirrors, and at least six LCD units. Light from at least one light source emits towards the first set of at least six reciprocal mirrors. The first set of at least six reciprocal mirrors reflects light towards at least one of the at least six LCD units. The at least six LCD units include, but are not limited to, a Green LCD, a Yellow LCD, a Cyan, LCD, a Red LCD, a Magenta LCD, and/or a Blue LCD. Output from each of the at least six LCDs is received by the second set of at least six reciprocal mirrors. Output from the second set of at least six reciprocal mirrors is sent to the single projector unit. Image data output by the single projector unit is output as a six-primary color system. In another embodiment, there are more than two sets of reciprocal mirrors. In another embodiment, more than one projector is used.

In another embodiment, the display is comprised of a dual stack Digital Micromirror Device (DMD) projector system. FIG. 94 illustrates one embodiment of a dual stack DMD projector system. In this system, two projectors are stacked on top of one another. In one embodiment, the dual stack DMD projector system uses a spinning wheel filter. In another embodiment, the dual stack DMD projector system uses phosphor technology. In one embodiment, the filter systems are illuminated by a xenon lamp. In another embodiment, the filter system uses a blue laser illuminator system. Filter systems in one projector are RGB, while the second projector uses a CMY filter set. The wheels for each projector unit are synchronized using at least one of an input video sync or a projector to projector sync, and timed so that the inverted colors are output of each projector at the same time.

In one embodiment, the projectors are phosphor wheel systems. A yellow phosphor wheel spins in time with a DMD imager to output sequential RG. The second projector is designed the same, but uses a cyan phosphor wheel. The output from this projector becomes sequential BG. Combined, the output of both projectors is YRGGCB. Magenta is developed by synchronizing the yellow and cyan wheels to overlap the flashing DMD.

In another embodiment, the display is a single DMD projector solution. A single DMD device is coupled with an RGB diode light source system. In one embodiment, the DMD projector uses LED diodes. In one embodiment, the DMD projector includes CMY diodes. In another embodiment, the DMD projector creates CMY primaries using a double flashing technique. FIG. 95 illustrates one embodiment of a single DMD projector solution.

FIG. 96 illustrates one embodiment of a six-primary color system using a white OLED display. In yet another embodiment, the display is a white OLED monitor. Current emissive monitor and/or television designs use a white emissive OLED array covered by a color filter. Changes to this type of display only require a change to pixel indexing and new six color primary filters. Different color filter arrays are used, placing each subpixel in a position that provides the least light restrictions, color accuracy, and off axis display.

FIG. 97 illustrates one embodiment of an optical filter array for a white OLED display.

FIG. 98 illustrates one embodiment of a matrix of an LCD drive for a six-primary color system with a backlight illuminated LCD monitor. In yet another embodiment, the display is a backlight illuminated LCD display. The design of an LCD display involves adding the CMY subpixels. Drives for these subpixels are similar to the RGB matrix drives. With the advent of 8K LCD televisions, it is technically feasible to change the matrix drive and optical filter and have a 4K six-primary color TV.

FIG. 99 illustrates one embodiment of an optical filter array for a six-primary color system with a backlight illuminated LCD monitor. The optical filter array includes the additional CMY subpixels.

In yet another embodiment, the display is a direct emissive assembled display. The design for a direct emissive assembled display includes a matrix of color emitters grouped as a six-color system. Individual channel inputs drive each Quantum Dot (QD) element illuminator and/or micro LED element.

FIG. 100 illustrates an array for a Quantum Dot (QD) display device.

FIG. 101 illustrates one embodiment of an array for a six-primary color system for use with a direct emissive assembled display.

FIG. 102 illustrates one embodiment of a six-primary color system in an emissive display that does not incorporate color filtered subpixels. For LCD and WOLED displays, this can be modified for a six-primary color system by expanding the RGB or WRGB filter arrangement to an RGBCMY matrix. For WRGB systems, the white subpixel could be removed as the luminance of the three additional primaries will replace it. SDI video is input through an SDI decoder. In one embodiment, the SDI decoder outputs to a Y CrCbCcCy-RGBCMY converter. The converter outputs RGBCMY data, with the luminance component (Y) subtracted. RGBCMY data is then converted to RGB data. This RGB data is sent to a scale sync generation component, receives adjustments to image controls, contrast, brightness, chroma, and saturation, is sent to a color correction component, and output to the display panel as LVDS data. In another embodiment the SDI decoder outputs to an SDI Y-R switch component. The SDI Y-R switch component outputs RGBCMY data. The RGBCMY data is sent to a scale sync generation component, receives adjustments to image controls, contrast, brightness, chroma, and saturation, is sent to a color correction component, and output to a display panel as LVDS data.

Video Wall Display

In one embodiment, the present invention includes a video wall system wherein the display is a video wall. A video wall is useful as a large display, e.g., for viewing image data from a distance, for displaying image data to a crowd, for displaying a large image. In one embodiment, a video wall is a display that utilizes multiple display devices, e.g., multiple screens, multiple monitors, multiple projectors, to display image data. Preferably, a video wall is operable to display a set of image data wherein the set of image data is also viewable on a single display device, e.g., a single monitor. In the embodiment wherein a video wall includes a plurality of monitor displays, each of the plurality of monitor displays is operable to display a portion of the image data, wherein the full image represented by the image data is only visible when looking at the plurality of monitor displays as a whole. FIG. 109 illustrates an example embodiment of a video wall wherein an image that is viewable on one display device is displayed across a plurality of display devices.

In one embodiment, the video wall is connected to at least one video wall controller wherein the at least one video wall controller is operable to control which portion of the image data is displayed by which display device. In one embodiment, each of the display devices is connected to the at least one video wall controller. Alternatively, the display devices are connected in a daisy chain, wherein a first display devices is connected to the at least one video wall controller and the remainder of the display devices are connected in series to each other. In yet another alternative, the video wall includes a single display device, e.g., a screen, a projector, wherein the at least one video wall controller is operable to scale the image data to fill and fit the dimensions of the single display device. Hardware and software implementations of the at least one video wall controller are compatible with the present invention. In one embodiment, the at least one video wall controller is integrated into a video card wherein the video card includes at least one GPU for graphics processing. Alternatively, the at least one video wall controller is connected to the video card. In one embodiment, the display engine of the present invention is connected to the video card to provide image data. In one embodiment, the video wall system includes a plurality of video cards, wherein the plurality of video cards are linked together in parallel to scale graphics processing. Parallel processing techniques including, but not limited to, time-division, image division, and/or object division are compatible with the present invention.

In one embodiment, the video card includes at least one frame buffer wherein the at least one frame buffer is operable to convert pixel data (e.g., bits stored in a bitmap) to image data for display. The video card is operable to a use graphics library to render image data and fill the at least one frame buffer with rendered image data. In one embodiment, the video card is operable to make a copy of the at least one frame buffer wherein the copy is operable to be split and processed for display on the plurality of displays as described in U.S. Pat. No. 9,911,176, which was filed Jan. 12, 2015 and issued Mar. 6, 2018, and which is incorporated herein by reference in its entirety. In one embodiment, the at least one frame buffer includes a first frame buffer and a second frame buffer. The first frame buffer includes the image data in its entirety, while the second frame buffer includes a portion of the image data for display on one of the plurality of display devices as described in U.S. Pat. No. 9,035,969, which was filed Nov. 29, 2012 and issued May 19, 2015, and which is incorporated herein by reference in its entirety. In one embodiment, the video card includes at least one LUT wherein the at least one LUT enables an expanded color gamut for the image data, e.g., 6P-B, 6P-C for the image data stored in the frame buffer. In one embodiment, the at least one LUT is operable to be modified while the image data is being processed to allow for a broader range of colors.

In one embodiment, the at least one video wall controller is operable to send an image data signal to the video wall. The image data signal includes, but is not limited to, rendered image data, metadata, and/or display data for the video wall. Preferably, the rendered image data is converted by the display engine into a three-coordinate format wherein a first coordinate and a second coordinate are both colorimetric (chroma) and wherein a third coordinate is a luminance or a luma value. As a non-limiting example, the three-coordinate format is Yxy, wherein Y is a luminance coordinate and x and y are orthogonal colorimetric coordinates. Alternatively, a transformation (e.g., a gamma compression) is applied to Y to create luma Y′. In one embodiment, x and y, the colorimetric coordinates, are scaled to increase the range of useful coding values. In a non-limiting example, x-values are divided by 0.74, while y-values are divided by 0.84 to expand the range of x and y. Alternative three-coordinate formats include, but are not limited to, L*a*b*, ICtCp, YCbCr, YUV, Yu′v′, YPbPr, and/or YIQ. Cylindrical coordinate image data (e.g., L*C*h* and other polar transformations of rectangular color coordinate systems) is also compatible with the present invention. The metadata includes, but is not limited to, an image source, an image data format, a color space, a white value, a signal format, transport format data (e.g., standardized transport format data), a test protocol, and/or Session Description Protocol (SDP) parameters. In one embodiment, the image data includes at least one transfer function, e.g., an OETF, an EOTF, an OOTF, a gamma function. Alternatively, the at least one video wall controller is operable to apply at least one transfer function to the image data upon receiving it. In one embodiment, the video wall system is operable to maintain a 12-bit bit depth for the image data. Using the three-coordinate format wherein only the third coordinate is a luminance or a luma value enables subsampling, which results in a reduction in bits. Fewer bits per pixel are needed for the chroma coordinates since the human eye is less sensitive to changes in chroma than changes in luminance. The bit reduction is not possible in other three-coordinate systems such as XYZ wherein luminance is a component in each of the three coordinates X, Y, and Z. In one embodiment, the LUT is compressed. In another embodiment, the image data and/or the LUT are encrypted. In one embodiment, encryption includes at least one key.

The display data includes data used to display the rendered image data on the video wall. In one embodiment, the display data includes cropping and/or scaling data to describe which portion of the rendered image data is displayed on each display device. The at least one video wall controller is operable to split, crop, and/or scale an image for display on the video wall. Alternatively, the display data includes mapping data to map portions of the rendered image data to the plurality of display devices. FIG. 110 illustrates one embodiment of a video wall controller wherein the video wall controller receives image data and transports the image signal data to the plurality of display devices. Each of the plurality of display devices then uses the image signal data to display a portion of the image data. The at least one video wall controller is also operable to encode, decode, compress, and/or decompress the image signal data. In one embodiment, the resolution of the image represented by the image signal data matches the total resolution of the video wall, which is the sum of the resolution of each display device. Alternatively, the image resolution is not the same as the video wall resolution. In one embodiment, the at least one video wall controller is operable to scale the image resolution for display on the video wall. In one embodiment, the display data includes identification data for each of the display devices, wherein the identification data describes a relative and/or an absolute location of each display device. For example, the location of a display device is a coordinate, e.g., a row number and a column number. Additionally or alternatively, the location of the display device includes identifiers of adjacent display devices. In yet another embodiment, the location of the display device further includes an orientation, a viewing angle, and/or a measure of visibility. Identification data further includes, but is not limited to, a display type, a display manufacturer, a display identifier, a media access control (MAC) address, an internet protocol (IP) address, dimensions, a resolution, pixel mapping data, and/or metadata. In one embodiment, the metadata includes, but is not limited to, EDID metadata, DR metadata, static metadata (e.g., as described in SMPTE ST 2084:2014, which was published Aug. 29, 2014 and which is incorporated herein by reference in its entirety), dynamic metadata (e.g., as described in SMPTE ST 2094-40:2020, which was published May 16, 2020 and which is incorporated herein by reference in its entirety), and/or Yxy metadata to define a variety of parameters.

In one embodiment, the display data further includes calibration data, e.g., a test pattern, and/or timing data to synchronize the plurality of display devices. In one embodiment, the video wall system includes at least one sensor wherein the at least one sensor is operable to monitor the display of the video wall to ensure that the plurality of display devices is properly synchronized. The at least one sensor is operable to monitor optical data, e.g., at least one color, at least one color coordinate, a brightness, a white point, a color gamut, an image, external light levels (e.g., ambient light). In one embodiment, the video wall system is operable to use computer vision to verify that the image displayed on the video wall matches the image described by the image data. In another embodiment, the at least one sensor is operable to sense the external light levels and communicate with the at least one video wall controller to modify the image data and/or the display to compensate for the external light levels. The ambient lighting in a room is likely to change for different usages of the video wall. The video wall system is operable to adjust such that the intent and content of the image data is still displayed properly regardless of viewing conditions. Alternatively, the at least one sensor is operable to monitor electrical data, e.g., a voltage, a current, a resistance, a power. In yet another embodiment, the at least one sensor is a temperature sensor. Sensor data from the at least one sensor is then compared to expected sensor data to verify the video wall display as described in U.S. Pat. No. 9,307,616, which was filed May 15, 2015 and issued Apr. 5, 2016, and which is incorporated herein by reference in its entirety. In one embodiment, the sensor data is used to monitor aging of the display devices. In one embodiment, the at least one video wall controller adjusts the image signal data based on the sensor data. For example, the at least one video wall controller modifies the brightness of an image displayed by the video wall in order to compensate for nonuniform changes in brightness of each display device in the video wall over time. Alternatively, the at least one video wall controller sends an alert regarding performance of each of the display devices. For example, if one or more display devices in a video wall is out of specification, the at least one video wall controller sends an alert to a remote device (e.g., smartphone, computer).

In one embodiment, each of the plurality of display devices receives a different image data signal. For example, each display device only receives a portion of image data that it displays rather than a full set of image data. The portion of image data is dependent on the location of the display device. In one embodiment, each of the plurality of display devices is operable to modify, recreate, and/or transmit the image data signal. For example, in a daisy chain network, a first display device is operable to modify the image data signal to indicate that the first display device received the image data signal before transmitting the image data signal to a second display device. Alternatively, a display device is operable to recreate and/or transmit a portion of the image data signal. In one embodiment, the at least one video wall controller is operable to create a virtual representation of the full set of image data for display on the video wall as described in International Patent Publication WO2021/0181412, which was filed Oct. 26, 2020 and published Apr. 29, 2021, and which is incorporated herein by reference in its entirety. The virtual representation has a virtual resolution. In one embodiment, the virtual representation is dependent on physical characteristics and/or constraints of the video wall. Alternatively, the virtual representation is agnostic of the plurality of display devices of the video wall. The at least one video wall controller is then operable to partition the image data based on the virtual representation and send a portion of the image data to each display device of the plurality of display devices. In one embodiment, the at least one video wall controller is operable to upscale and/or downscale the portion of the image data to match the resolution of each display device of the plurality of display devices.

In one embodiment, the at least one video wall controller is a single-input, multiple-output (SIMO) controller. Alternatively, the at least one video wall controller is a multiple-input, multiple-output (MIMO) controller. For example, the at least one video wall controller is operable to accept image data as multi-primary data (e.g., RGBCMY data), wherein a first input includes a first portion of the multi-primary data (e.g., RGB data) and wherein a second input includes a second portion of the multi-primary data (e.g., CMY data) as described in System 2 transport of the present invention, and output the image data to a plurality of display devices. Alternatively, the at least one video wall controller is operable to receive multiple inputs from a plurality of image data sources to display on the plurality of display devices. The at least one video wall controller is operable to consolidate the inputs and/or combine the inputs into a single set of image data. The at least one video wall controller is then operable to display the single set of image data on the plurality of display devices. In one embodiment, the at least one video wall controller stretches the image data to fit onto the plurality of display devices. The input to the at least one video wall controller includes, but is not limited to, stored image data, live image data (e.g., streaming video), and/or image data from a web source. The at least one video wall controller is operable to change image sources in real time or near real time. In one embodiment, the video wall system includes a camera wherein the camera is operable to capture image data and wherein the video wall is operable to display the captured image data in real time or near real time.

In one embodiment, the at least one video wall controller is operable to use multi-stream transport (MST). MST is a standard transport format as described in DisplayPort Standard 1.2, which was published Jan. 5, 2010, and which is incorporated herein by reference in its entirety. MST includes multiplexing a plurality of image signals and sending a single image signal to a demultiplexer, wherein the demultiplexer is operable to separate the single image signal into the plurality of image signals. The demultiplexer is then operable to send each of the plurality of image signals to the display devices of the video wall. Display interfaces including, but not limited to, SDI, HDMI, Digital Visual Interface (DVI), DisplayPort (DP), Mobile High Definition Link (MHDL), and internet protocol (IP) interfaces (e.g., as described in SMPTE ST-2110, which was published beginning Nov. 27, 2017 and which is incorporated herein by reference in its entirety), are compatible with the present invention.

In one embodiment, the at least one video wall controller is a server-based video wall controller wherein the at least one server-based video wall controller is operable for network communication with the video card and/or the video wall. In one embodiment, the server-based video wall controller is operable to communicate with the video wall via at least one adapter wherein the at least one adapter is attached to the display devices of the video wall. In one embodiment, the at least one adapter includes software that enables the server-based video wall controller to interface with the display devices. In one embodiment, the at least one adapter is operable for wireless communication, e.g., via a mobile data network, via a local area network. Advantageously, a server-based video wall controller is easier to upgrade and/or modify and eliminates the need for specialized hardware to be installed in the video wall system. Additionally, it is easier to change out server-based video wall controllers in the event that a server-based video wall controller fails. A server-based video wall controller is also operable to reduce redundancy in rendering and/or splitting image data for video wall display. In one embodiment, the server-based video wall controller includes at least one memory map for displaying image data on the video wall. The at least one video wall controller is operable to parse, optimize, and/or scale the image data for each display device in real time or near real time.

In one embodiment, the server-based video wall controller is operable to control a plurality of video walls in different locations, wherein each video wall displays the same image or a different image. In one embodiment, the at least one video wall controller is operable to adjust the image signal data in real time or near real time to accommodate changes in the video wall, e.g., addition of display devices, removal of display devices, display device failures, color space changes. In one embodiment, the at least one video wall controller includes a user interface wherein the user interface is operable to accept user input to control the video wall. In one embodiment, the server-based video wall controller is stored on a cloud-based server. Alternatively, the server-based video wall controller is stored on an edge node. Physical servers and virtual servers are also compatible with the present invention.

In one embodiment, the at least one video wall controller is connected to at least one video extender wherein the at least one video extender is operable to transport image data from the video wall controller to the plurality of display devices. Each of the plurality of display devices is preferably connected to one or more of the at least one video extender, and the at least one video wall controller is operable to determine which portion of the image data to send to which of the at least one video extender. The at least one video extender is operable to be used in an arrangement wherein the at least one video wall controller is located separately from the plurality of display devices, e.g., in a server room. In one embodiment, the at least one video wall controller is wired to the at least one video extender. Alternatively, the at least one video extender and the at least one video wall controller are operable to use wireless communication, e.g., a local area network connection, to transport the image data. In one embodiment, a capture card is operable to record the image data displayed on the video wall. In a preferred embodiment, the capture card is separate from the at least one video wall controller so that the processing power used for capture does not interfere with display on the video wall.

In one embodiment, the display devices include at least one screen, including, but not limited to, LCD screens, LED screens (e.g., perovskite LED screens, nanorod screens, miniLED screens, microLED screens, OLED screens, active matrix OLED (AMOLED) screens), cathode ray tube (CRT) screens, QD screens, and/or projector screens. In one embodiment, the at least one screen includes tiles, monitors, and/or cubes. Non-flat displays (e.g., curved OLED displays, curved Alternatively, the at least one screen is a device including, but not limited to, a computer, a wearable, a mobile device, a smartphone, and/or a tablet. The video wall system is operable to combine display devices of different sizes and/or resolutions. Alternatively, each of the plurality of display devices is identical. If the at least one screen includes bezels, the at least one video wall controller is operable to adjust the image data signal to compensate for the bezels, e.g., by scaling the image data as if the bezels did not exist. Bezel compensation eliminates pixels in an image that would otherwise covered by the bezels in order to create a seamless image. The at least one video wall controller is also operable to remove bezel compensation such that all of the image data is displayed. The at least one video wall controller is operable to compensate for gaps between screens, as well as rectangular and non-rectangular arrangements of screens.

In one embodiment, the plurality of display devices includes a laser phosphor display. In one embodiment, the at least one video wall controller is operable to reallocate bit depth in a display device to enable rearrangement of subpixels. Reallocation of bit depth enables the transport and display of color data in an expanded color gamut (e.g., 6P-B, 6P-C, RGBCMY data). For example, subpixels in an 8K display are repurposed to display an image with 4K resolution but with an expanded color gamut. Alternative display devices of the video wall are described in U.S. Pat. No. 11,030,934, which was filed Oct. 1, 2020 and issued Jun. 8, 2021, and which is incorporated herein by reference in its entirety. In one embodiment, the plurality of display devices includes projectors. The at least one video wall controller is operable to blend the output (e.g., overlap, interpolate) from the projectors to create a seamless image. In one embodiment, the at least one video wall controller includes a synchronization unit wherein the synchronization unit is operable to send a synchronization signal to each of the display devices to ensure that each of the display devices is displaying the same set of image data at a moment in time. A synchronization unit is further detailed in U.S. Pat. No. 8,911,291, which was filed Nov. 26, 2012 and issued Dec. 16, 2014, and which is incorporated herein by reference in its entirety. Alternatively, the at least one video wall controller is operable to send a broadcast command wherein the broadcast command includes time delay data to synchronize the plurality of display devices as described in U.S. Pat. No. 10,079,963, which was filed May 12, 2017 and issued Sep. 18, 2019, and which is incorporated herein by reference in its entirety. In one embodiment, the synchronization signal is an analog signal, e.g., a black burst signal, a tri-level synchronization pulse. Black burst signals for television color standards are also compatible as synchronization signals. In another embodiment, the synchronization signal is a signal for clock synchronization, e.g., as described in Request for Comments (RFC) Network Time Protocol (NTP) v4, which was published in June 2010 and which is incorporated herein by reference, or as described in the Precision Time Protocol (PTP) of IEEE 802.1AS, which was published Mar. 30, 2011 and which is incorporated herein by reference in its entirety. Other synchronization signals sent over IP are also compatible with the present invention.

In one embodiment, the video wall includes at least one electromechanical element, e.g., a microelectromechanical system (MEMS). MEMS devices typically use electronic signals to drive mechanical processes. In one embodiment, the at least one electromechanical element includes at least one integrated circuit (IC), e.g., a microprocessor, a microcontroller. In one embodiment, one or more of the at least one electromechanical element includes at least one sensor. In one embodiment, the at least one electromechanical element is a moving stage including at least one display element (e.g., a light-emitting diode) as described in U.S. Pat. No. 10,754,092, which was filed Jun. 25, 2019 and issued Aug. 25, 2020, and which is incorporated herein by reference in its entirety. Light passing from the at least one display element through at least one lens in front of the moving stage depends on a position of the moving stage relative to the at least one lens. Thus, the moving stage enables the video wall to display multiple sets of image data. In one embodiment, each set of image data is only viewable from a different angle and/or position. In one embodiment, a movement of the moving stage is based on a set path, e.g., a path of a camera filming the video wall. The movement of the moving stage follows the path of the camera such that the camera captures image data that is only visible from positions along the path of the camera. Alternatively, the movement of the moving stage is based on at least one set of image data being displayed. In one embodiment, the moving stage requires real-time or near-real-time rendering of the image data. In one embodiment, the image data is rendered with an expanded color gamut (e.g., 6P-B, 6P-C) and/or at least four primary colors. Advantageously, the expanded color gamut and/or the at least four primary colors enable more color differentiation between pixels, which is helpful when displaying multiple sets of image data. In one embodiment, the use of more than three primaries (RGB) is operable to increase a maximum luminance of the video wall, thus enabling HDR reproduction of the image data.

Video Walls for Light Field Display

In one embodiment, the video wall is a light field display. Light field displays are operable to create a three-dimensional (3D) visualization without the use of a wearable (e.g., red-blue glasses) to consolidate stereoscopic images. A light field defines rays of light passing through a plane in space. By defining the light field at each point in a 3D viewing space and displaying the image data as projected through the light field, the light field display is operable to display the 3D visualization of the image data on a two-dimensional display. In one embodiment, the light field display includes a plurality of holographic elements that appear different from different viewing angles. In one embodiment, each holographic element includes a lens (e.g., a microlens) overlayed over a plurality of pixels. Only one of the plurality of pixels is visible through the lens at a time, and the visible pixel depends on the viewing angle. In one embodiment, the holographic element further includes a blocking element, e.g., a channel, to eliminate unwanted cross-talk of light between holographic elements and/or artifacts from neighboring holographic elements. The change in appearance of each holographic element means that the displayed image as a whole appears different depending on the viewing angle, thus mimicking a three-dimensional object that appears different from different angles. Alternatively, the holographic element includes at least one electromechanical element, e.g., a moving stage. In one embodiment, the at least one electromechanical element is operable to change the appearance of the holographic element to create the 3D visualization.

Video Walls for Virtual Production

In addition to being used as large-scale displays, video walls (e.g., LED walls, LED volumes) are also used in the entertainment industry to replace or supplement real-life set design. For example, a video wall is operable to be used as a green screen. Video walls are also used for virtual production, wherein captured image data is combined with computer-generated imagery (CGI) in real time or near real time. For example, the video wall displays a virtual set that would otherwise be added in post-production. Displaying the virtual set in real time on the video wall is preferable because it means that lighting and coloring of the set as a whole, including real-life people and objects, is more accurate. For example, if the virtual set displayed on the video wall includes bright lights, reflections of the bright lights will appear on people and objects in front of the video wall, making the virtual set seem more realistic. If the virtual set were not displayed in real time (e.g., the background was a green screen), the reflections would not appear and would have to be edited in later. Displaying image data on video walls for virtual production requires real-time rendering. For example, when a camera is filming, the virtual set needs to change as the camera moves to simulate a real, three-dimensional set as viewed from different angles. Additionally, real-time or near real-time color balancing and/or color grading is needed to accommodate demands of film production including combinations of image and/or visual information from the camera, the video wall, and surrounding lighting. Advantageously, the present invention is operable for real-time or near real-time color correction, including gamut adjustments and blending. Using a three-coordinate format wherein the first coordinate is a luma or a luminance and the second and third coordinates are chroma (e.g., Yxy) is advantageous for real-time processing and adjustment of the image data by enabling subsampling without loss of visual information. With a less efficient representation, changes to image data would have to be done in post-production.

FIG. 111 is a schematic diagram of an embodiment of the invention illustrating a computer system, generally described as 800, having a network 810, a plurality of computing devices 820, 830, 840, a server 850, and a database 870.

The server 850 is constructed, configured, and coupled to enable communication over a network 810 with a plurality of computing devices 820, 830, 840. The server 850 includes a processing unit 851 with an operating system 852. The operating system 852 enables the server 850 to communicate through network 810 with the remote, distributed user devices. Database 870 may house an operating system 872, memory 874, and programs 876.

In one embodiment of the invention, the system 800 includes a network 810 for distributed communication via a wireless communication antenna 812 and processing by at least one mobile communication computing device 830. Alternatively, wireless and wired communication and connectivity between devices and components described herein include wireless network communication such as WI-FI, WORLDWIDE INTEROPERABILITY FOR MICROWAVE ACCESS (WIMAX), Radio Frequency (RF) communication including RF identification (RFID), NEAR FIELD COMMUNICATION (NFC), BLUETOOTH including BLUETOOTH LOW ENERGY (BLE), ZIGBEE, Infrared (IR) communication, cellular communication, satellite communication, Universal Serial Bus (USB), Ethernet communications, communication via fiber-optic cables, coaxial cables, twisted pair cables, and/or any other type of wireless or wired communication. In another embodiment of the invention, the system 800 is a virtualized computing system capable of executing any or all aspects of software and/or application components presented herein on the computing devices 820, 830, 840. In certain aspects, the computer system 800 may be implemented using hardware or a combination of software and hardware, either in a dedicated computing device, or integrated into another entity, or distributed across multiple entities or computing devices.

By way of example, and not limitation, the computing devices 820, 830, 840 are intended to represent various forms of electronic devices including at least a processor and a memory, such as a server, blade server, mainframe, mobile phone, personal digital assistant (PDA), smartphone, desktop computer, notebook computer, tablet computer, workstation, laptop, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the invention described and/or claimed in the present application.

In one embodiment, the computing device 820 includes components such as a processor 860, a system memory 862 having a random access memory (RAM) 864 and a read-only memory (ROM) 866, and a system bus 868 that couples the memory 862 to the processor 860. In another embodiment, the computing device 830 may additionally include components such as a storage device 890 for storing the operating system 892 and one or more application programs 894, a network interface unit 896, and/or an input/output controller 898. Each of the components may be coupled to each other through at least one bus 868. The input/output controller 898 may receive and process input from, or provide output to, a number of other devices 899, including, but not limited to, alphanumeric input devices, mice, electronic styluses, display units, touch screens, signal generation devices (e.g., speakers), or printers.

By way of example, and not limitation, the processor 860 may be a general-purpose microprocessor (e.g., a central processing unit (CPU)), a graphics processing unit (GPU), a microcontroller, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated or transistor logic, discrete hardware components, or any other suitable entity or combinations thereof that can perform calculations, process instructions for execution, and/or other manipulations of information.

In another implementation, shown as 840 in FIG. 111 multiple processors 860 and/or multiple buses 868 may be used, as appropriate, along with multiple memories 862 of multiple types (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core).

Also, multiple computing devices may be connected, with each device providing portions of the necessary operations (e.g., a server bank, a group of blade servers, or a multi-processor system). Alternatively, some steps or methods may be performed by circuitry that is specific to a given function.

According to various embodiments, the computer system 800 may operate in a networked environment using logical connections to local and/or remote computing devices 820, 830, 840 through a network 810. A computing device 830 may connect to a network 810 through a network interface unit 896 connected to a bus 868. Computing devices may communicate communication media through wired networks, direct-wired connections or wirelessly, such as acoustic, RF, or infrared, through an antenna 897 in communication with the network antenna 812 and the network interface unit 896, which may include digital signal processing circuitry when necessary. The network interface unit 896 may provide for communications under various modes or protocols.

In one or more exemplary aspects, the instructions may be implemented in hardware, software, firmware, or any combinations thereof. A computer readable medium may provide volatile or non-volatile storage for one or more sets of instructions, such as operating systems, data structures, program modules, applications, or other data embodying any one or more of the methodologies or functions described herein. The computer readable medium may include the memory 862, the processor 860, and/or the storage media 890 and may be a single medium or multiple media (e.g., a centralized or distributed computer system) that store the one or more sets of instructions 900. Non-transitory computer readable media includes all computer readable media, with the sole exception being a transitory, propagating signal per se. The instructions 900 may further be transmitted or received over the network 810 via the network interface unit 896 as communication media, which may include a modulated data signal such as a carrier wave or other transport mechanism and includes any deliver media. The term “modulated data signal” means a signal that has one or more of its characteristics changed or set in a manner as to encode information in the signal.

Storage devices 890 and memory 862 include, but are not limited to, volatile and non-volatile media such as cache, RAM, ROM, EPROM, EEPROM, FLASH memory, or other solid state memory technology, discs (e.g., digital versatile discs (DVD), HD-DVD, BLU-RAY, compact disc (CD), or CD-ROM) or other optical storage; magnetic cassettes, magnetic tape, magnetic disk storage, floppy disks, or other magnetic storage devices; or any other medium that can be used to store the computer readable instructions and which can be accessed by the computer system 800.

In one embodiment, the computer system 800 is within a cloud-based network. In one embodiment, the server 850 is a designated physical server for distributed computing devices 820, 830, and 840. In one embodiment, the server 850 is a cloud-based server platform. In one embodiment, the cloud-based server platform hosts serverless functions for distributed computing devices 820, 830, and 840.

In another embodiment, the computer system 800 is within an edge computing network. The server 850 is an edge server, and the database 870 is an edge database. The edge server 850 and the edge database 870 are part of an edge computing platform. In one embodiment, the edge server 850 and the edge database 870 are designated to distributed computing devices 820, 830, and 840. In one embodiment, the edge server 850 and the edge database 870 are not designated for computing devices 820, 830, and 840. The distributed computing devices 820, 830, and 840 are connected to an edge server in the edge computing network based on proximity, availability, latency, bandwidth, and/or other factors.

It is also contemplated that the computer system 800 may not include all of the components shown in FIG. 111 may include other components that are not explicitly shown in FIG. 111 or may utilize an architecture completely different than that shown in FIG. 111. The various illustrative logical blocks, modules, elements, circuits, and algorithms described in connection with the embodiments discussed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate the interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application (e.g., arranged in a different order or positioned in a different way), but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

The above-mentioned examples are provided to serve the purpose of clarifying the aspects of the invention, and it will be apparent to one skilled in the art that they do not serve to limit the scope of the invention. By nature, this invention is highly adjustable, customizable and adaptable. The above-mentioned examples are just some of the many configurations that the mentioned components can take on. All modifications and improvements have been deleted herein for the sake of conciseness and readability but are properly within the scope of the present invention. 

The invention claimed is:
 1. A system for displaying image data, comprising: at least one graphics processing unit (GPU); a display engine; at least one display controller; and a plurality of display devices; wherein the image data includes a luminance and two colorimetric coordinates, and wherein the two colorimetric coordinates are independent from the luminance; wherein the at least one GPU is operable to render the image data for display on the plurality of display devices, thereby creating rendered image data; wherein the rendered image data is transmitted to the display engine; wherein the display engine is operable to apply at least one non-linear transfer function to the luminance, thereby creating a luma; wherein the rendered image data is transmitted to the at least one display controller; wherein the at least one display controller is operable to scale the rendered image data for display on the plurality of display devices, thereby creating image display data; wherein the at least one display controller is operable to transmit the image display data to each of the plurality of display devices; and wherein the plurality of display devices is operable to display the image display data.
 2. The system of claim 1, wherein the at least one GPU includes a render engine, at least one render pipeline, a programmable pixel shader, a programmable vector shader, a vector array processor, a curvature engine, and/or a memory cache.
 3. The system of claim 1, wherein the display engine includes a raster scaler, at least one video display controller, a color channel-to-XYZ converter, a linear converter, a scaler, a limiter, an XYZ-to-Yxy converter, a sampling selector, a video bus, a look-up table (LUT), at least one output formatter, and/or at least one encoder.
 4. The system of claim 1, wherein the at least one GPU and the display engine are included on a video card.
 5. The system of claim 1, wherein the at least one GPU is a plurality of GPUs, and wherein the plurality of GPUs is operable to render the image data in parallel.
 6. The system of claim 1, wherein the image display data includes a mapping of the rendered image data to the plurality of display devices.
 7. The system of claim 1, wherein the image display data includes a cropping of the rendered image data.
 8. The system of claim 1, wherein the image display data includes timing data.
 9. The system of claim 1, wherein the image display data includes a location of each of the plurality of display devices.
 10. The system of claim 1, wherein each of the plurality of display devices is operable to display at least 80% of a total area covered between about 400 nanometers and about 700 nanometers by an International Commission on Illumination (CIE) 1931 color space.
 11. The system of claim 1, wherein the image data corresponds to an image, and wherein the image includes colors outside of an International Telecommunication Union Recommendation (ITU-R) BT.2020 color gamut.
 12. The system of claim 1, wherein each of the plurality of display devices is operable to transmit the image display data.
 13. The system of claim 1, wherein the plurality of display devices includes at least one display screen, and wherein the at least one display screen includes a liquid crystal display (LCD) screen, a light-emitting diode (LED) display screen, a quantum dot (QD) display screen, and/or a projector screen.
 14. A system for displaying image data, comprising: at least one graphics processing unit (GPU); a display engine; at least one display controller; and a plurality of display devices; wherein the image data includes a luminance and two colorimetric coordinates, and wherein the two colorimetric coordinates are independent from the luminance; wherein the at least one GPU is operable to render the image data for display on the plurality of display devices, thereby creating rendered image data; wherein the rendered image data is transmitted to the display engine; wherein the display engine is operable to apply at least one non-linear transfer function to the luminance, thereby creating a luma; wherein the rendered image data is transmitted to the at least one display controller; wherein the at least one display controller is operable to scale the rendered image data for display on the plurality of display devices, thereby creating image display data; wherein the at least one display controller is operable to transmit an image display signal to each of the plurality of display devices; wherein the image display signal includes a portion of the image display data; and wherein the plurality of display devices is operable to display the image display data.
 15. The system of claim 14, wherein the portion of the image display data included in the image display signal is based on a location of each of the plurality of display devices.
 16. The system of claim 14, wherein the image display signal includes a cropping of the rendered image data.
 17. The system of claim 14, wherein the image display signal includes timing data.
 18. The system of claim 14, wherein the image display signal includes a calibration signal.
 19. A system for displaying image data, comprising: at least one graphics processing unit (GPU); a display engine; at least one display controller; and a plurality of display devices; wherein the image data includes a luminance and two colorimetric coordinates, and wherein the two colorimetric coordinates are independent from the luminance; wherein the at least one GPU is operable to render the image data for display on the plurality of display devices, thereby creating rendered image data; wherein the rendered image data is transmitted to the display engine; wherein the display engine is operable to apply at least one non-linear transfer function to the luminance, thereby creating a luma; wherein the rendered image data is transmitted to the at least one display controller; wherein the at least one display controller is operable to scale the rendered image data for display on the plurality of display devices, thereby creating image display data; wherein the at least one display controller is operable to transmit an image display signal to each of the plurality of display devices; wherein the image display signal includes a portion of the image display data; wherein the plurality of display devices is operable to display the image display data; and wherein the image display data includes a plurality of images.
 20. The system of claim 19, wherein the plurality of display devices includes at least one moving stage and wherein the at least one moving stage is operable to change a visibility of at least one display element in the plurality of display devices. 